首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要输入:是否可以在selenium c#中的每个测试步骤后截取屏幕截图

需要输入:是否可以在selenium c#中的每个测试步骤后截取屏幕截图
EN

Stack Overflow用户
提问于 2019-09-27 00:32:00
回答 2查看 213关注 0票数 0

有没有在每次断言验证后截图的方法?无论断言通过还是失败,都应该截取屏幕截图。

需要强有力的建议

EN

回答 2

Stack Overflow用户

发布于 2019-09-27 00:34:02

可以,您可以使用Driver.TakeScreenshot();

您需要找到保存屏幕截图的文件路径,并保存该文件。

代码语言:javascript
复制
var screenshot = Driver.TakeScreenshot();
var filePathToSave = "C:\\Users\\YourFilePathHere";

// format as .png
screenshot.SaveAs(filePathToSave, ImageFormat.Png);

我建议将它包装在一个方法中,并在需要时调用它:

代码语言:javascript
复制
public void TakeScreenshot()
{
    var screenshot = Driver.TakeScreenshot();
    var filePathToSave = "C:\\Users\\YourFilePathHere";

    // format as .png
    screenshot.SaveAs(filePathToSave, ImageFormat.Png);
}

然后您可以在Assert之后使用它,如下所示:

代码语言:javascript
复制
Assert.IsTrue(something);
Driver.TakeScreenshot();

您还需要处理Assert语句失败的情况--因此您还需要在[TearDown]方法中实现这一点,以确保即使测试失败也能截取屏幕截图:

代码语言:javascript
复制
    [TearDown]
    public void TearDown()
    {
        // take screenshot
        TakeScreenShot();

        // close and quit driver
        Driver.Close();
        Driver.Quit();
    }
票数 1
EN

Stack Overflow用户

发布于 2019-09-27 06:42:26

如果您使用的是Nunit。它支持多个断言。

文档摘录(https://github.com/nunit/docs/wiki/Multiple-Asserts)

多个assert块可以包含任意代码,而不仅仅是assert。

可以嵌套多个断言块。直到最外层的块退出时,才会报告失败。

如果块中的代码调用一个方法,则该方法还可能包含多个assert块。

示例用法:

代码语言:javascript
复制
[Test]
public void ComplexNumberTest()
{
     ComplexNumber result = SomeCalculation();
     Assert.Multiple(() =>
     {
         Assert.AreEqual(5.2, result.RealPart, "Real part");
         Assert.AreEqual(3.9, result.ImaginaryPart, "Imaginary part");
     });
}

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58121176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档