如何为硒c#

时间:2018-10-19 14:28:20

标签: c# selenium selenium-webdriver

我已经创建了屏幕截图功能,并且可以正常工作,但是我想针对任何异常情况进行屏幕截图,以下是代码:

  

c#

public static void SnapSreenshot()
{
    PalV3.wait(20);
    path = @"E:\Accounts\Screenshot\";
    string timeanddate = System.DateTime.Now.ToString("dd_mm_yyy hh.mm.ss");
    DirectoryInfo DirectPath = new DirectoryInfo(path);
    if(DirectPath.Exists)
    {
        Screenshot ss = ((ITakesScreenshot)BasePage.cd).GetScreenshot();
        ss.SaveAsFile(path+timeanddate.ToString(), ScreenshotImageFormat.Jpeg);
    }
    else
    {
        DirectPath.Create();
        Screenshot ss = ((ITakesScreenshot)BasePage.cd).GetScreenshot();
        ss.SaveAsFile(path + timeanddate.ToString(), ScreenshotImageFormat.Jpeg);
    }
}

1 个答案:

答案 0 :(得分:2)

如果您试图对测试失败进行截图,那么您想陷入某种“事后”或“拆除”的情况。

使用specflow /硒,可以使用AfterScenario()方法。您可以写类似-

[AfterScenario()]
    public void TearDown()
    {
        if (TestContext.CurrentContext.Result.Outcome.Status == TestStatus.Failed)
        {
            SnapSreenshot();
        }
    }

很明显,如果您正在使用其他测试框架,则可能需要使用不同的方法名称,但是我认为一般原理是相同的。