При создании снимка экрана драйвер отсутствует - PullRequest
0 голосов
/ 12 ноября 2018

В моем проекте 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);
}
...