处理driver->get(URL)
和慢速页面加载的最佳方法是什么?
我基本上有一个最多运行3次的for循环。在这个循环中,我有一个try/catch block. In the try block, it loads the page with get OR
wait()->until(WebDriverExpectedCondition::presenceOfElementLocated(WebDriverBy::xPath("//body")));
如果get或wait不起作用,则刷新页面或执行相同的get命令。
这真的是最好的方式吗?我想知道你们是怎么处理的?页面加载不正确似乎是我的脚本经常无法完全执行的主要原因之一。
的presenceOfElementLocated((无法确保页面是否已完全加载。
慢速页面加载的理想解决方案是通过try-catch{}
块设置pageLoadTimeout((,如下所示:
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().pageLoadTimeout(2, TimeUnit.SECONDS);
try {
driver.get("https://www.booking.com/hotel/in/the-taj-mahal-palace-tower.html?label=gen173nr-1FCAEoggJCAlhYSDNiBW5vcmVmaGyIAQGYATG4AQbIAQzYAQHoAQH4AQKSAgF5qAID;sid=338ad58d8e83c71e6aa78c67a2996616;dest_id=-2092174;dest_type=city;dist=0;group_adults=2;hip_dst=1;hpos=1;room1=A%2CA;sb_price_type=total;srfid=ccd41231d2f37b82d695970f081412152a59586aX1;srpvid=c71751e539ea01ce;type=total;ucfs=1&#hotelTmpl");
} catch (TimeoutException e) {
System.out.println("TimeoutException occurred. Quiting the program.");
}
driver.quit();
参考文献
您可以在中的pageLoadTimeout((上找到一些相关的详细讨论
- pageLoadTimeout在Selenium-Java中不起作用
- 如何为python selenium 3.8.0设置"driver.get"的超时