Selenium Microsoft Edge Browser Automation останавливается и дает сбой, если мы запустим тест на заблокированной машине

Тест: Тест автоматизации - это создание скриншотов видео и сравнение с предыдущим. Я выполняю это на виртуальной машине (ВМ) - Windows 10 64bit.

Другое состояние браузера: Chrome и Firefox работают хорошо, независимо от того, заблокирован рабочий стол или нет

Проблема: эта автоматизация не работает с Microsoft Edge (последняя версия 42.17) при работе на заблокированной виртуальной машине ( (закрывая сеанс RDP). Но я могу запустить эту автоматизацию успешно, если моя виртуальная машина не заблокирована.

Что произошло после того, как виртуальная машина заблокирована: автоматизация пытается выполнить несколько итераций и делает снимки экрана (которые все являются черными снимками экрана). И через некоторое время он не проходит контрольный пример.

Два разных сценария тестирования мы можем заключить здесь:

  1. Когда виртуальная машина не заблокирована и не открыта на моем локальном компьютере, где мы видим, что выполняется - это проходит тест и ожидается

  2. Когда виртуальная машина заблокирована и не может видеть никакого выполнения, так как выполнение теста выполняется на заблокированном рабочем столе - тест продолжает давать сбой (а также дает нам полные черные скриншоты), чего не ожидается

Ресурсы, которые я использовал:

VS 2017, Selenium v ​​3.12,C#,Microsoft Edge 42.17134.1.0, Nunit v3.10.1, драйвер Microsoft v16.16299

Ожидание: мы должны иметь возможность запустить тест с помощью браузера Microsoft Edge на виртуальной машине (или любой Windows 10), независимо от того, заблокирована ли машина (закрыв сеанс RDP) или не заблокирована

// this is how I am invoking the browser 
else if (browser.Equals(Constant.Edge))
{
EdgeOptions options = new EdgeOptions();
driver = new EdgeDriver(DrivePath, options, TimeSpan.FromSeconds(100));
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
}


// Standard approach to click the screenshots of browser 
public static string TakeScreenshot(IWebDriver driver, string directory, int imageIndex)
{
string filename = “Screenshot_” + imageIndex.ToString() ;
Screenshot test_Screenshot = ((ITakesScreenshot)driver).GetScreenshot();
var fullPath = directory + “\” + filename + ".Jpeg";
test_Screenshot.SaveAsFile(fullPath, ScreenshotImageFormat.Jpeg);
return fullPath;
}

0 ответов

Другие вопросы по тегам