有没有办法,如何等待页面重新加载?例如,当我在页面上时localhost:9000/web,我再次指示webdriver导航到localhost:9000/web.我不希望或不能通过等待某些元素来指示重新加载.
在Selenium WebDriver中,我们可以使用以下代码片段实现waitForPageToLoad:
public void waitForPageToLoad(WebDriver driver) {
ExpectedCondition < Boolean > pageLoad = new
ExpectedCondition < Boolean > () {
public Boolean apply(WebDriver driver) {
return ((JavascriptExecutor) driver).executeScript("return document.readyState").equals("complete");
}
};
Wait < WebDriver > wait = new WebDriverWait(driver, 60);
try {
wait.until(pageLoad);
} catch (Throwable pageLoadWaitError) {
assertFalse("Timeout during page load", true);
}
}
Run Code Online (Sandbox Code Playgroud)
如果您使用 Selenium RC,那么这就是waitForPageToLoad()方法。
selenium.waitForPagetoLoad() // it might be waitForLoad() - can't remember.
Run Code Online (Sandbox Code Playgroud)
如果您使用 Selenium WebDriver,则所有导航都由 API 处理,并且它将隐式等待,直到浏览器完成导航。
driver.navigate().to().url("http://localhost:9000/web");
Run Code Online (Sandbox Code Playgroud)
另外,请确保将“http://”放在开头。Selenium 可能无法解析“localhost:9000”
| 归档时间: |
|
| 查看次数: |
13600 次 |
| 最近记录: |