我的网页加载存在一些问题,因为网页加载了一些异步内容, 我想中断页面加载以继续我的测试的后续步骤。
1- driver.get(url)这会在1800秒加载后抛出 timeoutException。
2-我已经补充说 driver.manage()。timeouts()。implicitlyWait(TEST_WAIT,TimeUnit.SECONDS); 它没有改变任何东西。
我做了 driver.manage()。timeouts()。setScriptTimeout(time,unit) 也没有变化
3-最后一次尝试如下 JavascriptExecutor js =(JavascriptExecutor)驱动程序; js.executeScript(“return window.stop()”); 这不起作用
我该如何解决这个问题?
答案 0 :(得分:1)
您是否尝试过设置页面加载超时?
driver.manage().timeouts().setPageLoadTimeout(time, unit);
这应该在超时到期时抛出TimeoutException
,您可以捕获并继续下一个操作。警告(可能未在所有浏览器中实现,行为可能不同)适用。
答案 1 :(得分:0)
解决方案: 以下解决方案可能会解决您的等待问题。让我们试试吧!
static void waitForPageLoad(WebDriver wdriver) {
WebDriverWait wait = new WebDriverWait(wdriver, 60);
Predicate<WebDriver> pageLoaded = new Predicate<WebDriver>() {
@Override
public boolean apply(WebDriver input) {
return ((JavascriptExecutor) input).executeScript("return document.readyState").equals("complete");
}
};
wait.until(pageLoaded);
}