我想为每个验证器/声明通过和失败步骤拍摄屏幕截图。让我知道我们是否有testng侦听器可以帮助我实现此方案,因为我是硒webdriver和testng自动化测试的新手。
答案 0 :(得分:0)
您可以按照以下步骤进行屏幕截图:
File screen = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
BufferedImage img = ImageIO.read(screen);
File filetest = Paths.get(".").toAbsolutePath().normalize().toFile();
ImageIO.write(img, "png", new File(filetest + "\\Screenshots\\"+ "ScreenshotName" + ".png"));
在这里,屏幕快照将使用绝对路径保存在项目工作区下的“屏幕快照”文件夹(您需要创建)中。如果要保存在其他位置,则可以找到相同的路径。
如果您希望每个@Test上的TestNG验证程序是通过还是失败,都可以在AfterMethod中实现。
@AfterMethod
public void testStatus(ITestResult result) throws IOException
{
if (result.getStatus() == ITestResult.FAILURE) {
testResult = "Test Fail :" + result.getName();
testResult = "Details of Fail Testcase:" + result.getThrowable();
}
}
您可以在testStatus方法中定义上述Screenshot实用程序,如果@Test失败,它将进行屏幕截图。