selenium-webdriver - 如何使用 testng 侦听器在每个验证器/断言通过和失败时触发屏幕截图
问题描述
我想为每个验证器/断言通过和失败步骤截屏。让我知道我们是否有 testng 侦听器可以帮助我实现这个场景,因为我是 selenium webdriver 和 testng 自动化测试的新手
解决方案
您可以通过以下方式截屏:
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 方法中定义上面的屏幕截图实用程序,如果 @Test 失败,它将进行屏幕截图。
推荐阅读
- python - python中最有效的计算方式在对列表中查找对
- .net-core - 如何使用 Aes128CbcHmacSha256 创建令牌
- android - 从服务器下载文件时出现 Android SQLite 错误
- python - 计算特定值并将其写入文本文件的循环
- python - Python:如何在两个轴上附加到(稀疏)二维数组?
- ios - 如何在程序不崩溃的情况下结束 if-else 循环?
- java - 计算文本文件中的字母出现次数
- arrays - 更新旧代码,什么是 Array(_unsafeUninitializedCapacity: 1024, initializingWith: 0)
- r - 绘制两个 .csv 数据集的两个直方图以比较 R (ggplot) 中的数据
- excel - 从每个数据验证输出中复制行