如何增加Selenium网格会话超时?

Sla*_*vik 11 selenium selenium-grid session-timeout selenium-webdriver

在运行我的测试时,我需要长时间延迟(约40秒).

而且我看到,Selenium会话在此期间被删除了.

请帮忙:如何配置会话超时增加?

这是我在Selenium节点日志中开始延迟后30秒内看到的内容:

INFO org.openqa.selenium.remote.server.DriverServlet - 会话7f5fffec-4882-4c4c-b091-c780c66d379d由于客户端超时而被删除

睡眠40秒后,我的代码中出现此异常:

org.openqa.selenium.remote.SessionNotFoundException

我试图增加所有可能的超时.以下是我启动集线器的方法:

java -jar selenium-server-standalone.jar -role hub 
-hubConfig selenium_hub.json 
-nodeTimeout 61 
-remoteControlPollingIntervalInSeconds 180 
-sessionMaxIdleTimeInSeconds 240 
-newSessionMaxWaitTimeInSeconds 250 
-timeout 59
Run Code Online (Sandbox Code Playgroud)

这里是selenium_hub.json:

{
  "host": null,
  "port": 4444,
  "newSessionWaitTimeout": -1,
  "servlets": [],
  "prioritizer":  null,
  "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
  "throwOnCapabilityNotPresent": true,
  "nodePolling": 5000,
  "cleanUpCycle": 5000,
  "timeout": 60000,
  "browserTimeout": 60000,
  "maxSession": 5,
  "jettyMaxThreads": -1
}
Run Code Online (Sandbox Code Playgroud)

没有在节点上配置任何超时.这是我在网格控制台中看到的内容:

browserTimeout : 60000
capabilityMatcher : org.openqa.grid.internal.utils.DefaultCapabilityMatcher
cleanUpCycle : 5000
host : null
hubConfig : /usr/local/selenium/config/selenium_hub.json
jettyMaxThreads : -1
maxSession : 5
newSessionMaxWaitTimeInSeconds : 250
newSessionWaitTimeout : -1
nodePolling : 5000
nodeTimeout : 61
port : 4444
prioritizer : null
remoteControlPollingIntervalInSeconds : 180
role : hub
servlets : []
sessionMaxIdleTimeInSeconds : 240
throwOnCapabilityNotPresent : true
timeout : 59000
Run Code Online (Sandbox Code Playgroud)

我正在使用Selenium 2.45

Sla*_*vik 7

我终于想通了!

解决方案实际上非常简单:在集线器上更改配置后,需要重新启动节点.

这不是很明显:

当我更改集线器上的配置时,我重新启动它.节点将自动重新注册集线器.然后查看控制台,我可以看到新的配置参数生效.更重要的是,当我查看节点配置时,我看到节点上的参数已经更改.那是误导!因为即使节点重新注册,但其配置尚未更改.它仅在节点重新启动时才会更改.我想,这是Selenium bug - 节点应该在重新注册时重新配置.