使用Selenium处理GET后缓慢页面加载的最佳方法



处理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命令。

这真的是最好的方式吗?我想知道你们是怎么处理的?页面加载不正确似乎是我的脚本经常无法完全执行的主要原因之一。

BODY

的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"的超时

相关内容

  • 没有找到相关文章

最新更新