测试:自动化测试是关于截取视频的截图并与之前的截图进行比较。我在虚拟机(VM)上执行此操作 - Windows 10 64位。
其他浏览器状态:无论桌面是锁定还是取消锁定,Chrome和Firefox都能正常运行
问题:当在锁定的虚拟机上运行时(通过关闭RDP会话),此自动化不适用于Microsoft Edge(最新版本v42.17)。但如果我的VM未锁定,我可以成功运行此自动化。
VM被锁定后发生了什么:自动化尝试执行少量迭代并截取屏幕截图(这些都是黑屏幕截图)。并且在一段时间后它失败了测试用例。
我们可以在此结论两个不同的测试场景:
当VM未锁定并在我的本地打开时,我们可以看到执行正在进行中 - 通过测试并预期
当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;
}