在我的规范流项目中,我创建了静态 Screenshot 类。我还创建了静态方法来拍摄屏幕截图。但在运行时,我的驱动程序始终为空。我怎么解决这个问题。
下面是代码片段:
public static class Screenshot
{
public static void TakeScreenshots(this IWebDriver driver, string path = @"result")
{
var takescreenshot = (driver as ITakesScreenshot) != null;
if (!takescreenshot)
return;
var filename = string.Empty + DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Second + DateTime.Now.Millisecond;
filename = path + @"\" + filename + ".png";
var ss = ((ITakesScreenshot)driver).GetScreenshot();
var screenshot = ss.AsBase64EncodedString;
byte[] screenshotAsByteArray = ss.AsByteArray;
ss.SaveAsFile(filename, ScreenshotImageFormat.Png);
}
}
我像这样调用我的 afterstep 钩子:
[AfterStep()]
public static void AfterStep()
{
if (ScenarioContext.Current.TestError == null)
{
stepStatus = Status.Pass;
}
else
{
ScreenShot.TakeScreenshots(driver);
}
test.Log(stepStatus, stepLogText);
}