如何增加Selenium Chrome驱动程序的页面加载超时时间

3

我使用Chrome Driver将文件上传到远程服务器,这个过程有时需要超过30分钟。我设置了页面加载超时值如下:

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

但是当我开始上传过程时,chromedriver在等待渲染器响应的最大时间为10分钟之后就会放弃,并且提示没有收到任何响应。有没有办法增加这个内置超时值(10分钟)。

2个回答

1

谢谢你的回答,但是你的建议是使用Java编写的,相当于我的代码行: driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(1800); // 30分钟 (C#) - James
5
如果你不想得到与Java相关的建议,请不要使用java标签。 - Fenio

0

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

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

首先,ChromeDriverChrome 的组合尚未符合W3C标准,因此您可能会遇到一些与您覆盖的配置有所偏差的情况。相比之下,GeckoDriver 似乎更加符合W3C标准,以下是一些详细信息:

GeckoDriver 在默认配置下启动时设置了以下超时时间

  • implicit0
  • pageLoad300000
  • script30000

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

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

根据当前的WebDriver W3C候选推荐,每个超时的值可以延长至最大安全整数
The value of Number.MAX_SAFE_INTEGER is 9007199254740991 (2(pow)531).

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接