2016-06-13 59 views
2

搜索遍及试图找到对此的答案。控制存在时循环

我想在网页上输入数据。我进入循环并输入数据。然后我点击下一步按钮。这一直持续到没有更多的用户。一旦没有更多的用户页面发生变化,没有更多的下一步按钮点击。

我不知道如何用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#中,所以我不知道如何处理这种情况。我只想输入数据,然后单击“下一步”转到下一个用户,直到下一个按钮不再存在。

回答

0

您应该检查是否元素是可见的,并能够使用在你的循环状况此功能通过WebElement作为参数:

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

或者尝试:

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

我结束了使用这种有成功。

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