有时当我进行测试时,网站永远不会停止加载,我的测试就会卡在上面。如何设置driver.get()方法不等待页面加载?如果不可能有任何工作或其他方法可以替换driver.get()?
答案 0 :(得分:9)
提前退出页面加载等待的最简单方法是设置页面加载超时。超时到期后,您可以捕获TimeoutException
并继续进行下一步测试。调用它的代码如下所示:
// Set the page load timeout to 10 seconds.
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
try {
driver.get("http://url/to/my/slow/loading/page");
} catch (TimeoutException e) {
// Ignore the exception.
}
// Proceed with your next step here.
请注意,您可能需要使用WebDriverWait
或类似内容,以确保您感兴趣的元素出现在页面上。
答案 1 :(得分:0)
我们可以设置pageLoadTimeout,一旦设置它就会通过webdriver会话,并且如果由于超时而抛出异常,那么我们无法恢复相同的会话,因此需要创建新的实例。
WebDriver driver = new FirefoxDriver();
//waits 10 seconds for page to load
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
try {
driver.get("https://yourdomain.com");
} catch (TimeoutException e) {
driver.close();
driver.quit();
//create new instance of webdriver
driver = new FirefoxDriver();
//waits 5 minutes for page to load
driver.manage().timeouts().pageLoadTimeout(300, TimeUnit.SECONDS);
driver.get("https://yourdomain.com");
}