测试:自动化测试就是对视频进行截图并与之前的比较。我在虚拟机 (VM) - Windows 10 64bit 上执行此操作。
其他浏览器状态:无论桌面是锁定还是解锁,Chrome 和 Firefox 都运行良好
问题:在锁定的虚拟机(通过关闭 RDP 会话)上运行时,此自动化无法与 Microsoft Edge(最新 v42.17)一起使用。但如果我的 VM 未锁定,我可以成功运行此自动化。
虚拟机锁定后发生的情况:自动化尝试执行少量迭代并截取屏幕截图(均为黑色屏幕截图)。一段时间后,它会通过测试用例。
我们可以在这里得出两种不同的测试场景:
当虚拟机没有被锁定并在我的本地打开时,我们可以看到执行正在进行中 - 这是通过测试和预期的
当虚拟机被锁定并且由于测试执行在锁定的桌面下正在进行中而看不到任何执行时 - 测试不断失败(以及给我们完整的黑色屏幕截图),这是意料之外的
我使用的资源:
VS 2017 , Selenium v 3.12 ,C# ,Microsoft Edge 42.17134.1.0 , Nunit v3.10.1 , Microsoft Driver v16.16299
期望:我们应该能够在 VM(或任何 Windows 10)上使用 Microsoft Edge 浏览器运行测试,无论机器是锁定(通过关闭 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;
}