4

在场景结束时,如果失败,我想拍照。以下代码不起作用:

[AfterScenario]
public void AfterScenario()
{
    if(ScenarioContext.Current.TestError != null)
    {
     WebBrowser.Driver.CaptureScreenShot(ScenarioContext.Current.ScenarioInfo.Title);
    }
}

我认为这可能是因为我使用 Coypu(已包裹硒)启动浏览器。驱动程序没有实现“captureScreenShot”方法。所以我的问题是:当我使用 coypu 启动浏览器时,如何在场景之后截取屏幕截图?

启动浏览器的代码如下:

sessionConfiguration.Driver = typeof (SeleniumWebDriver);
sessionConfiguration.Browser = Drivers.Browser.Firefox;
4

2 回答 2

2

正如你所说,目前 Coypu 还没有实现这一点。原因是到目前为止我根本不需要截屏,直到现在也没有人问过。

要访问本机驱动程序(在您的情况下为 WebDriver),BrowserSession.Native您可以使用 WebDriver 的 GetScreenshot 方法。这最终会看起来像这样(免责声明:未经测试):

var driver = (ITakesScreenshot) coypuBrowserSession.Native;

var screenshot = driver.GetScreenshot();

screenshot.SaveAsFile("c://screenshot.png", System.Drawing.Imaging.ImageFormat.Png);

在 github 上为您打开了一个问题,将其添加到 Coypu 的 BrowserWindow API

于 2012-10-11T15:16:12.857 回答
0

这现在在 Coypu 中原生可用。您可以在此处找到文档:

https://github.com/featurist/coypu#screenshots

于 2016-07-13T13:13:14.823 回答