【问题标题】:How can i increase page load timeout of selenium chrome driver如何增加 selenium chrome 驱动程序的页面加载超时
【发布时间】:2018-07-24 08:41:11
【问题描述】:

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

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

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

【问题讨论】:

    标签: java c# google-chrome selenium driver


    【解决方案1】:

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

    这里是 API。 enter link description here

    【讨论】:

    • 感谢您的回答,但您的建议是在 java 中,相当于我的代码行。 driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(1800); // 30 分钟 (C#)
    • @James 如果您不想要 Java 中的建议,请不要使用标签 java
    【解决方案2】:

    您在问题中提到了使用 chrome 驱动程序将文件上传到远程服务器,这个过程有时像往常一样需要 30 多分钟,并且您试图增加 页面加载超时值如下:

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

    首先ChromeDriverChrome组合尚待W3C投诉 因此您可能会遇到与覆盖配置的一些偏差。相比之下 GeckoDriver 似乎更 W3C 投诉,这里有一些细节:

    GeckoDriver 在默认配置中启动时会设置以下超时

    • implicit : 0
    • pageLoad : 300000
    • script : 30000

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

    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).
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-29
      相关资源
      最近更新 更多