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

时间:2015-03-26 07:30:31

标签: selenium selenium-webdriver session-timeout selenium-grid

在进行测试时,我需要长时间延迟(约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

这是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
}

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

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

我使用的是Selenium 2.45

2 个答案:

答案 0 :(得分:7)

我终于明白了!

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

这不是很明显:

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

答案 1 :(得分:0)

C#

driver = new RemoteWebDriver(new Uri("http://host:4444/wd/hub"), capabilities);
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds( desired_time ));

P.S。 我正在使用Selenium grid 2.53和firefox 46.0