Почему Edge/Selenium выдает ошибку при отключении от виртуальной машины Windows 10, на которой размещен узел?

Я изо всех сил пытаюсь настроить масштабируемое решение для поддержки тестирования Selenium Edge. Во-первых, Edge не может работать как служба Windows. Во-вторых, на машине одновременно может быть запущен только один тестовый экземпляр Edge. И теперь, в-третьих, при использовании виртуальной машины с Windows 10 для размещения узла и Edge тесты завершаются сбоем при отключении сеанса удаленного рабочего стола.

Вот ошибка, которая возникает, когда подключение к удаленному рабочему столу с виртуальной машиной Windows 10 отключено (но пользователь все еще вошел в виртуальную машину):

Сообщение о результате: метод инициализации SeleniumTests.LeftNavigationTests.Init вызвал исключение. System.InvalidOperationException: System.InvalidOperationException: операция размера окна завершилась неудачно, так как окно в данный момент недоступно.

Проблема возникает только тогда, когда удаленный сеанс не активен. При подключении тесты проходят нормально.

Кто-нибудь видел эту проблему раньше и нашел способ обойти ее? Любая помощь будет принята с благодарностью!

Информация о системе:

  • Виртуальная машина Windows 10: версия 10.0.15063 сборка 15063
  • Microsoft Edge 40.15063.674.0
  • Microsoft EdgeHTML 15.15063
  • Веб-драйвер Майкрософт: 15063
  • Селен: 3.12.0
  • Узел Selenium запускается в окне консоли на виртуальной машине Windows 10.

person user2794745    schedule 25.06.2018    source источник


Ответы (1)


Похоже, именно так в настоящее время разработан Edge. Браузер больше не работает так же, когда рабочий стол неактивен. Очень похоже на то, как приложения переходят в активную память в течение жизненного цикла.

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

Create a batch file with this code called DisconnectRDP and run as administrator:
for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
  %windir%\System32\tscon.exe %%s /dest:console
)
Create a desktop shortcut to this file. To do this, right-click the batch file and select Send to | Desktop (create shortcut).
In the shortcut properties, click Advanced and select Run as administrator.

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

  1. Откройте реестр (выполните локальный поиск Windows для regedit)
  2. Перейдите к следующей папке в реестре: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon.
  3. Установите AutoAdminLogon на 1
  4. Установите DefaultDomainName, если требуется
  5. Установите имя пользователя по умолчанию
  6. Создайте DefaultPassword и установите его соответствующим образом.

Другая проблема заключается в том, что Edge поддерживает только один сеанс Selenium за раз. Это затрудняет масштабирование тестирования.

person user2794745    schedule 15.08.2018