在场景结束时,如果失败了,我想拍一张照片。以下代码不起作用:
[AfterScenario]
public void AfterScenario()
{
if(ScenarioContext.Current.TestError != null)
{
WebBrowser.Driver.CaptureScreenShot(ScenarioContext.Current.ScenarioInfo.Title);
}
}我想这可能是因为我使用Coypu (它包装了selenium )启动我的浏览器。驱动程序未实现“captureScreenShot”方法。所以我的问题是:当我使用coypu启动我的浏览器时,如何在场景之后截取屏幕截图?
启动浏览器的代码如下:
sessionConfiguration.Driver = typeof (SeleniumWebDriver);
sessionConfiguration.Browser = Drivers.Browser.Firefox;发布于 2012-10-11 23:16:13
正如您所说,这目前还没有在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上的I've opened an issue将其添加到Coypu的BrowserWindow应用程序接口中
发布于 2016-07-13 21:13:15
这现在在Coypu中是原生可用的。您可以在以下位置找到文档:
https://stackoverflow.com/questions/12734873
复制相似问题