2016-06-13 56 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") ) {