Selenium Microsoft Edge Browser Automation останавливается и дает сбой, если мы запустим тест на заблокированной машине
Тест: Тест автоматизации - это создание скриншотов видео и сравнение с предыдущим. Я выполняю это на виртуальной машине (ВМ) - Windows 10 64bit.
Другое состояние браузера: Chrome и Firefox работают хорошо, независимо от того, заблокирован рабочий стол или нет
Проблема: эта автоматизация не работает с Microsoft Edge (последняя версия 42.17) при работе на заблокированной виртуальной машине ( (закрывая сеанс RDP). Но я могу запустить эту автоматизацию успешно, если моя виртуальная машина не заблокирована.
Что произошло после того, как виртуальная машина заблокирована: автоматизация пытается выполнить несколько итераций и делает снимки экрана (которые все являются черными снимками экрана). И через некоторое время он не проходит контрольный пример.
Два разных сценария тестирования мы можем заключить здесь:
Когда виртуальная машина не заблокирована и не открыта на моем локальном компьютере, где мы видим, что выполняется - это проходит тест и ожидается
Когда виртуальная машина заблокирована и не может видеть никакого выполнения, так как выполнение теста выполняется на заблокированном рабочем столе - тест продолжает давать сбой (а также дает нам полные черные скриншоты), чего не ожидается
Ресурсы, которые я использовал:
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;
}