我正在尝试在Selenium WebDriver测试中实现屏幕截图捕获功能,如下所示:
[TearDown]
public void TearDown()
{
if (TestContext.CurrentContext.Result.Outcome.Equals(ResultState.Failure))
{
Screenshot file = ((ITakesScreenshot)_driver).GetScreenshot();
file.SaveAsFile(@"" + Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
+ "/TestScreenshot" + DateTime.Now.Ticks + ".png", ScreenshotImageFormat.Png);
}
if (_driver != null) _driver.Close();
}
如果测试失败,则应截取屏幕截图并将其保存到用户的桌面。但是,如果测试失败,则不会将屏幕截图保存到桌面。该方法有效,因为最后一行(_driver.Close())已正确执行(如果测试失败,它将关闭浏览器)。
我的语法有错误吗?
答案 0 :(得分:0)
您的应用程序可能无法访问用户桌面来写入文件,并且Selenium Webdrive会捕获并抑制该错误以避免崩溃该应用程序。
确保(通过为您的应用程序授予特权)或将其保存在不需要任何特权的位置。