Selenium не работает с Internet Explorer на удаленной машине, если вы не вошли в систему

Я использую Selenium IE WebDriver (последняя версия 2.46), чтобы выполнить свои тесты на IE. Настройка:

  • Я использую Jenkins для запуска моих тестов
  • IE находится на удаленной виртуальной машине, где также размещаются и выполняются тесты

Проблема в том, что некоторые тесты требуют фокусировки окна браузера, и тесты не выполняются из-за проблем с фокусировкой. Проблемы исчезли, когда я вошел в систему на виртуальной машине, даже если подключение к удаленному рабочему столу машины минимизировано. Даже если я запустил задание Jenkins с одним пользователем и вошел в систему с другим пользователем - это не проблема. Проблема в том, что когда я закрываю удаленное соединение, тесты снова не проходят. Я не уверен, что это имеет отношение к открытому соединению и как движение мыши обнаруживается на машине.

У кого-нибудь была такая проблема и возможно может помочь?

2 ответа

Вот временное решение. Создайте файл bat с этим кодом:

for /f %%i in ('qwinsta ^| findstr ">rdp-tcp#"') do set RDP_SESSION=%%i :: Strip the > set RDP_SESSION=%RDP_SESSION:>=% tscon %RDP_SESSION% /dest:console echo y | rwinsta 65536

Я проверил это, и он работает правильно. Источник: предотвратить блокировку сеанса RDP.

Моя рекомендация: какой-то слушатель + AutoLogon ( https://technet.microsoft.com/en-us/library/bb963905.aspx)

Слушатель "слушает" инструкции от вашего сервера Jenkins - это может быть что-то действительно глупое, например, PSExec удаленно (например, PSExec, запустить удаленный пакетный файл) или что-то еще (в зависимости от вашего стека).

AutoLogon гарантирует, что указанный вами пользователь автоматически войдет в систему и будет иметь полный сеанс (не сеанс удаленного рабочего стола) на компьютере. В рамках этого сеанса вы можете запускать все, что захотите. Вход в систему (для отладки неудачных тестов) включает вход в систему от имени другого пользователя. autologon /delete а затем диспетчер задач -> Пользователи -> пользователь -> Подключиться.

Имеет смысл? Дайте мне знать, если я могу помочь объяснить больше.

/CD