Есть ли способ, чтобы предотвратить селен автоматически прекратить бездействующие сессии?

Я использую селен для автоматизации некоторых взаимодействий с веб-сайтами. Этот процесс включает в себя открытие нескольких браузеров и их периодическое выполнение. Однако иногда бывают длительные (> 1 часа) периоды бездействия, и селен, по-видимому, автоматически убивает сеансы браузера после ~30 минут отсутствия вызова.

Я хотел бы установить этот тайм-аут на 7 часов или около того, но я не могу найти способ сделать это.

Это сообщение селен отправляет, так как оно закрывает незанятый браузер.

13:06:35.277 INFO [ActiveSessions$1.onStop] - Removing session 70a1b8cbae6876cde7e66df13b3942d1 (org.openqa.selenium.chrome.ChromeDriverService)

Если у кого-то есть какие-либо выводы, я был бы очень благодарен. В настоящее время я просто автоматически обновляю браузеры каждые 15 минут, чтобы предотвратить тайм-ауты, но это кажется грубым.

1 ответ

Решение

Это сообщение об ошибке...

INFO [ActiveSessions$1.onStop] - Removing session 70a1b8cbae6876cde7e66df13b3942d1 (org.openqa.selenium.chrome.ChromeDriverService)

... подразумевает, что уже инициированный / порожденный новый сеанс браузера Chrome был прерван.

Эта проблема наблюдается с конфигурацией Selenium Grid Hub/Node и / или реализацией RemoteWebdriver.

Если вы соблюдаете -help из selenium-server-standalone-x.y.z.jar по умолчанию -timeout / -sessionTimeout установлен на 1800 секунд.

  • Команда CLI:

    $>java -jar selenium-server-standalone-3.14.0.jar -help
    
  • Выход:

-timeout, -sessionTimeout: <Integer> в секундах: указывает время ожидания, по истечении которого сервер автоматически завершает сеанс, который не выполнялся в течение последних X секунд. Тестовый слот будет выпущен для другого теста. Это обычно используется, чтобы заботиться о сбоях клиента. Для ролей узлов / узлов сетки также должен быть установлен cleanUpCycle.

  • Значение по умолчанию: 1800

  • Снимок:

Следовательно, вы видите тайм-аут, и кажется, что селен автоматически убивает сеанс браузера через ~30 минут без вызова.


Решение

Вы можете увеличить -timeout / -sessionTimeout следующее:

$>java -jar /path/to/selenium-server-standalone-3.14.0.jar -sessionTimeout 57868143
Другие вопросы по тегам