在webdriver代碼中,如果我使用thread.sleep(20000)
。它等待20秒,我的代碼也可以正常工作。 要存檔相同的,如果我使用像webdriver implicitWait不按預期方式工作
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
這不是強制20秒就在3到4秒來等待並進入下一步驟隱含的等待。並且頁面仍在加載。
這是有線情況,因爲我使用流利的等待來查找一些元素。如果元素仍然在頁面上加載,它不會顯示錯誤並使測試通過。
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(50, TimeUnit.SECONDS)
.pollingEvery(5, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);
WebElement foo = wait.until(new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(By.id("jxxx"));
}
});
但是,如果我說錯了ID它等待50秒,但其他測試通過沒有點擊..它沒有顯示任何錯誤。
我的問題是我應該怎麼避免Thread.sleep()
其他硒方法不幫助我..
感謝您查看此@JimEvans,我編輯了我的代碼,現在只使用流暢的等待,但它沒有發出任何錯誤,也沒有做任何事情。 – user2254173