Selenium Microsoft Edge Browser Automation останавливается и дает сбой, если мы запустим тест на заблокированной машине - PullRequest
0 голосов
/ 22 мая 2018

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

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

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

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

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

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

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

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

VS 2017, Selenium v ​​3.12, C #, Microsoft Edge 42.17134.1.0, Nunit v3.10.1, драйвер Microsoftv16.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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...