В моем проекте spec-flow я создал статический класс 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()]
public static void AfterStep()
{
if (ScenarioContext.Current.TestError == null)
{
stepStatus = Status.Pass;
}
else
{
ScreenShot.TakeScreenshots(driver);
}
test.Log(stepStatus, stepLogText);
}