在Selenium c中截取屏幕截图出错

时间:2017-05-31 14:08:55

标签: c# selenium selenium-chromedriver

我正在尝试使用下面的简单代码在Selenium C#中截取

public void takeScreenshot()
    {
        Screenshot screenshot = ((ITakesScreenshot)DriverContext.Driver).GetScreenshot();
        screenshot.SaveAsFile(@"C:\images\image.png", ImageFormat.Png);
    }

只要我在测试代码中调用此方法,就会抛出错误:

System.InvalidOperationException: unknown error: cannot get automation extension
from unknown error: page could not be found: chrome-
extension://aapnijgdinlhnhlmodcfapnahmbfebeb/_generated_background_page.html
(Session info: chrome=58.0.3029.110)
(Driver info: chromedriver=2.27.440174 
(e97a722caafc2d3a8b807ee115bfb307f7d2cfd9),platform=Windows NT 10.0.10586 x86_64)

我研究了很多,发现

  1. 这可能是由于我安装了最新版本的旧Chrome驱动程序版本,但它仍然会出错

  2. 该网站可能无法导航到我通过导航到www.google.com进行检查的www,但它仍无效。

  3. 我不确定如何解决此问题。任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:0)

我在我的TearDown中使用它并且它对我有用 - 也许就是那时DriverContext.Driver正在解决的问题?

[TearDown]
    public void TearDown()
    {
        if (TestContext.CurrentContext.Result.Outcome != ResultState.Success)
        {
            var screenshot = ((ITakesScreenshot)browser).GetScreenshot();
            var filename = TestContext.CurrentContext.Test.MethodName + "_screenshot_" + DateTime.Now.Ticks + ".jpg";
            var path = "C:\\Temp\\" + filename;
            screenshot.SaveAsFile(path , ScreenshotImageFormat.Jpeg);
            TestContext.AddTestAttachment(path);
        }
        browser.Quit();
    }