我已经创建了屏幕截图功能,并且可以正常工作,但是我想针对任何异常情况进行屏幕截图,以下是代码:
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);
}
}
答案 0 :(得分:2)
如果您试图对测试失败进行截图,那么您想陷入某种“事后”或“拆除”的情况。
使用specflow /硒,可以使用AfterScenario()方法。您可以写类似-
[AfterScenario()]
public void TearDown()
{
if (TestContext.CurrentContext.Result.Outcome.Status == TestStatus.Failed)
{
SnapSreenshot();
}
}
很明显,如果您正在使用其他测试框架,则可能需要使用不同的方法名称,但是我认为一般原理是相同的。