頁面上的等待元素存在問題。如何等待整個頁面加載完成?
頁面包含的20個項目 列表我可以設置100改爲20頁用JS重裝(子幀重新加載)
但後來我得到一個錯誤: 元素不再有效
moveTNVPage.switchToThisPage();
moveTNVPage.selectQuantity();
waitForPageLoad();
moveTNVPage.selectEnabledCheckBox(wait);
waitForPageLoad():
public void waitForPageLoad() {
Wait<WebDriver> wait = new WebDriverWait(driver, 30);
wait.until(new Function<WebDriver, Boolean>() {
public Boolean apply(WebDriver driver) {
System.out.println("Current Window State : " + String.valueOf(((JavascriptExecutor) driver).executeScript("return document.readyState")));
return String.valueOf(((JavascriptExecutor) driver).executeScript("return document.readyState")).equals("complete");
}
});
}
在@BeforeTest 我已成立:
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.manage().timeouts().setScriptTimeout(5, TimeUnit.SECONDS);
driver.manage().timeouts().pageLoadTimeout(5, TimeUnit.SECONDS);
僅Thread.sleep()方法有很長一段時間可以解決這個問題 但在不同的測試環境幫助我需要不同的Thread.Sleep!
我怎樣才能避免了Thread.Sleep ???? 我試過使用
wait.until(ExpectedConditions ... ...)
這也沒有幫助。
B.R。 安東
謝謝,我會試試看。 現在我已經抓住了ajax指標,並等待直到它變得不可見。 它有很大的幫助 –
我很高興。如果有幫助,請接受我的回答。 – Prateek