如何增加硒铬驱动程序的页面加载超时

时间:2018-02-13 21:27:56

标签: java c# google-chrome selenium driver

我使用chrome驱动程序将文件上传到远程服务器,此过程有时需要照常超过30分钟。我将页面加载超时值设置如下。

driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(3600); // 1 hour (C#)
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);

但是当我开始上传过程时,chromedriver等待最多10分钟才放弃说它没有得到渲染器的任何响应。 有没有办法增加这个内置的超时值(10分钟)。

2 个答案:

答案 0 :(得分:1)

试试这样 driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.MINUTES);

这是api。 enter link description here

答案 1 :(得分:0)

您在问题中提到使用Chrome驱动程序将文件上传到远程服务器,此过程有时需要超过30分钟并且您尝试增加页面加载超时值如下:

driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(3600);

首先 ChromeDriver Chrome 组合尚未 W3C投诉 因此您可能会遇到与被覆盖的配置的一些偏差。比较 GeckoDriver 似乎更多 W3C投诉 ,以下是一些细节:

在默认配置中启动时,

GeckoDriver 设置以下超时

  • implicit 0
  • pageLoad 300000
  • script 30000

现在,在准备自动化脚本时,您可以覆盖每个超时的默认配置,这些配置将适用于 WebDriver的整个生命周期实例,就像你在代码块中所做的那样:

driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(3600);

根据当前WebDriver W3C Candidate Recommendation,每个超时的值可以延长至the maximum safe integer

The value of Number.MAX_SAFE_INTEGER is 9007199254740991 (2(pow)53−1).
  

注意:增加 页面加载超时值 以等待将文件上传到远程服务器不会成为<的一部分em>最佳编程实践。相反,您必须创建一个逻辑,以确定文件上载的完成情况。但是这个话题超出了这个问题的范围。