Подтвердить что ты не робот

Как увеличить тайм-аут сеанса селеновой сетки?

Во время выполнения моего теста мне нужно иметь длительные задержки (~ 40 секунд).

И я вижу, что сеанс Selenium удаляется в течение этого времени.

Пожалуйста, помогите: Как настроить тайм-аут сеанса для увеличения?

Вот то, что я вижу меньше, это 30 секунд, после задержки в журнале Selenium node:

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
}

Никаких таймаутов, настроенных на узлах. Вот что я вижу в консоли Grid:

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

4b9b3361

Ответ 1

Я, наконец, понял это!

Решение на самом деле очень просто: нужно перезапустить узлы после изменения конфигурации на концентраторе.

Это не совсем очевидно:

Когда я изменил конфигурацию на концентраторе, я перезапустил его. Node будет автоматически перерегистрироваться в концентраторе. Затем, глядя на консоль, я вижу, что новые параметры конфигурации вступают в силу. Более того, поскольку я рассматриваю конфигурации Node, я вижу, что на узлах изменены одни и те же параметры. Это вводит в заблуждение! Потому что даже если узлы перерегистрировались, но их конфигурация НЕ была изменена. Он изменяется только после перезапуска Node. Я думаю, что это ошибка Selenium - Node должна быть повторно настроена во время перерегистрации.

Ответ 2

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