【问题标题】:Tests timeouts (Selenium+Jenkins+Grid)测试超时(Selenium+Jenkins+Grid)
【发布时间】:2018-01-31 20:44:10
【问题描述】:

我们已经开始出现随机超时,但无法找到原因。测试在亚马逊上使用 selenium 网格的远程机器上运行。这是怎么回事:

  • 浏览器已打开,
  • 然后页面正在加载,但在 120 秒内无法完全加载,
  • 然后引发超时异常。

如果我在本地运行相同的测试,那么一切正常。

Error 是一个普通的超时异常,如果在driver.manage().timeouts().pageLoadTimeout() 中设置的时间段内没有完全加载页面,则会抛出该异常。问题是网站的页面不能在这段时间内完全加载。但是,当在driver.manage().timeouts().pageLoadTimeout() 中设置的时间段结束时,浏览器的Selenium 占有结束,页面立即加载。无法在同一台远程机器上手动重现该问题。我们尝试了不同版本的 Selenium Standalone、Chromedriver、Selenium 驱动程序。浏览器是 Google Chrome 63。很高兴听到有关原因的任何建议。

【问题讨论】:

  • 您的远程机器是否有权访问您的内部测试站点?
  • 你能用你正在使用的二进制文件的配置以及代码试验、相关的 HTML 和错误堆栈跟踪来更新问题吗?
  • 代码很简单:driver.get("URL");我已经更新了问题的描述。现在应该更清楚了
  • 当你在本地运行时,你使用与在远程机器上运行相同的 selenium 网格吗?还是在本地运行时在本地打开的浏览器?
  • 在本地运行时我不使用网格,我只使用了一台机器

标签: selenium selenium-webdriver automation selenium-chromedriver selenium-grid


【解决方案1】:

当 Selenium 默认加载网页/url 时,它遵循 pageLoadStrategy 设置为 normal 的默认配置。为了让 Selenium 不等待整个页面加载,我们可以配置 pageLoadStrategypageLoadStrategy 支持以下 3 种不同的值:

  • 正常(整页加载)
  • 渴望(交互式)

代码示例:

  • Java

    capabilities.setCapability("pageLoadStrategy", "none");
    
  • Python

    caps["pageLoadStrategy"] = "none"
    

在这里您可以找到通过JavaPython客户的详细讨论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    相关资源
    最近更新 更多