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