【问题标题】:Selenium GRID -- Session terminated due to TIMEOUT after less then 100 milliseconds when invoking WebDriver.getCurrentUrl()Selenium GRID -- 调用 WebDriver.getCurrentUrl() 时会话因 TIMEOUT 不到 100 毫秒而终止
【发布时间】:2016-09-30 18:56:44
【问题描述】:

我有一组并行测试,当我在本地运行它们时从来没有出现过这个问题。这仅发生在我的小两个节点网格上。当我尝试调用WebDriver.getCurrentUrl() 时,我的测试一直在失败。错误信息是这样的:

org.openqa.selenium.WebDriverException: Session [035e8f79-fdd7-4492-a565-f803df792d3c] was terminated due to TIMEOUT
Command duration or timeout: 90 milliseconds
Build info: version: '2.53.0', revision: '35ae25b1534ae328c771e0856c93e187490ca824', time: '2016-03-15 10:43:46'
System info: host: 'bos-mpky6', ip: '172.30.31.59', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.11.6', java.version: '1.8.0_102'
Driver info: org.openqa.selenium.remote.RemoteWebDriver
Capabilities [{applicationCacheEnabled=true, rotatable=false, handlesAlerts=true, databaseEnabled=true, version=46.0.1, platform=LINUX, nativeEvents=false, acceptSslCerts=true, webdriver.remote.sessionid=035e8f79-fdd7-4492-a565-f803df792d3c, webStorageEnabled=true, locationContextEnabled=true, browserName=firefox, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]
Session ID: 035e8f79-fdd7-4492-a565-f803df792d3c

    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:701)
    at org.openqa.selenium.remote.RemoteWebDriver.getCurrentUrl(RemoteWebDriver.java:326)

起初,我认为这是一个配置问题,但我已将我的设置配置为具有比几毫秒长得多的超时。这是我用于集线器的配置:

{
  "host": null,
  "port": 4444,
  "newSessionWaitTimeout": -1,
  "servlets" : [],
  "prioritizer": null,
  "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
  "throwOnCapabilityNotPresent": true,
  "nodePolling": 5000,
  "cleanUpCycle": 5000,
  "timeout": 300000,
  "browserTimeout": 0,
  "jettyMaxThreads":-1
}

这是我用于两个节点的配置:

{
   "capabilities":
   [
      {
         "browserName": "firefox",
         "version": "46.0.1",
         "platform": "LINUX",
         "maxInstances": 5
      }
   ],
   "configuration":
   {
       "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
       "nodeTimeout":500000,
       "port":5555,
       "nodePolling":2000,
       "registerCycle":10000,
       "register":true,
       "cleanUpCycle":2000,
       "timeout":500000
   }
}

我没有使用 Docker 或类似的东西。我已经尝试过网格服务器的 2.53.1、2.53.0、2.52.0 和 2.51.0 版本,但问题仍然困扰着我的测试。我能做些什么来摆脱这个问题吗?我找不到与超时相关的配置设置似乎可以摆脱这种情况。

【问题讨论】:

    标签: selenium selenium-webdriver selenium-grid


    【解决方案1】:

    我在调整 timeoutbrowserTimeout 属性时遇到了同样的错误。我的解决方案是将集线器配置设置回默认值。但是你已经和我现在一样了。

    但我发现您的节点配置略有不同。 我使用 Windows 7 作为节点,这是我的配置:

    {
      "capabilities": [
        {
          "browserName": "firefox",
          "maxInstances": 2,
          "takesScreenshot": true,
          "seleniumProtocol": "WebDriver"
        },
        {
          "browserName": "internet explorer",
          "maxInstances": 1,
          "version": "11",
          "webdriver.ie.driver": "<MOUNT>\Selenium\IEDriverServer_2.53.1_32bit",
          "takesScreenshot": true,
          "platform": "WINDOWS",
          "seleniumProtocol": "WebDriver"
        }
      ],
      "configuration": {
        "_comment" : "Configuration for Node",
        "cleanUpCycle":5000,
        "timeout": 500,
        "port": 8088,
        "hubHost": V0001172,
        "register": true,
        "hubPort": 8089,
        "maxSession": 1
      }
    }
    

    我将 seleniumProtocol 添加到我的节点配置中。我不记得我在哪里找到的,但在我的设置中它可以工作。

    【讨论】:

    • 我在我的节点配置中添加了 seleniumProtocol,但我不再看到这个问题,所以我接受这个作为答案。
    猜你喜欢
    • 2018-01-17
    • 2018-09-06
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多