Как увеличить тайм-аут сеанса селеновой сетки?
Во время выполнения моего теста мне нужно иметь длительные задержки (~ 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
Ответы
Ответ 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