仅在after方法中使用selenium(java)截图

我使用testng框架工作在java selenium中创建了一个自动化套件。基本上,在我的套件中,场景放置在方法之前和之后。 我想为每个失败并通过的测试场景拍摄屏幕截图。为此,我创建了一个单独的类并在每个脚本中调用它以捕获After方法之前的截图。 我在这里面临的问题是,如果脚本失败,脚本停止执行,并且它没有移动到截图代码行,因此它不捕获失败脚本的屏幕截图。 所以我希望截图程序只能放在after方法中,所以在驱动程序退出之前,尽管场景结果为合格/不合格,它仍然会截图。 我使用testng编写了将近20个场景的代码。 有人可以通过after方法调用我的代码来获取屏幕截图,而不会影响我编写的代码。

截图程序只能在after方法中,所以它会在驱动程序退出之前捕获屏幕。


确保你能捕获异常,这样你就不会过早退出代码。

例如,这是我在每次测试运行(通过或失败)后采取截图的方式。 我使用异常值(如果有)来动态命名屏幕截图文件。

首先,一个示例测试方法:

    [DataSource("System.Data.SqlClient", "Data Source=DEV338X2B;Initial Catalog=SeleniumDb;Integrated Security=True",
        "dbo.F_single_ErkenningAannemerKlasse1", DataAccessMethod.Sequential), TestMethod]
    public void erkenningAannemerKlasse1()
    {
        try
        {
            frontUser.erkenningAannemerKlasse1(data);
        }
        catch (Exception e)
        {
            exception = e.Message + " " + e.StackTrace;
        }
    }

然后这个方法在每次测试后执行。 在这种情况下,Microsoft UnitTest框架中的默认行为。

    [TestCleanup()]
    public void Cleanup()
    {
        frontUser.takeScreenshot(data.get("testnaam"), data.get("datarow"), exception);
        frontUser.closeBrowser();
    }
链接地址: http://www.djcxy.com/p/67397.html

上一篇: Take screenshot in selenium (java) only in after method

下一篇: Unable to take screenshot