控件存在时循环

时间:2016-06-13 14:25:20

标签: java selenium-webdriver

搜索到所有人试图找到答案。

我想在网页上输入数据。我进入循环并输入数据。然后单击“下一步”按钮。这种情况一直持续到没有更多用户为止。一旦没有更多用户,页面就会更改,并且没有其他按钮可以单击。

我不确定如何使用Selenium在Java中编写代码。 C#,没有汗水。有什么想法吗?

这个工作一次,然后引用在下一次循环时变得陈旧。

 WebElement loopCondition = driver.findElement(By.name("imgnext"));
 while (loopCondition.isEnabled()) {
      myElement = (new WebDriverWait(driver, 30))
           .until(ExpectedConditions.elementToBeClickable(By.id("originalSalaryAmt")));
      myElement.sendKeys("1000");
      myElement.sendKeys(Keys.RETURN);
      myElement = (new WebDriverWait(driver, 30))
           .until(ExpectedConditions.elementToBeClickable(By.name("imgnext")));
      myElement.click();

}

Java中没有.exists存在于C#中,因此我不确定如何处理这种情况。我只想输入数据,然后单击下一步转到下一个用户,直到下一个按钮不再存在。

2 个答案:

答案 0 :(得分:0)

您应检查元素是否可见并在循环条件中启用此函数将WebElement作为参数传递:

public bool IsElementVisible(IWebElement element)
{
    return element.Displayed && element.Enabled;
}

或者尝试:

driver.ElementIsPresent(By.name("imgnext"));

答案 1 :(得分:0)

我成功地使用了它。

 while (driver.getPageSource().contains("Next")  ) {