屏幕截图未显示在 testNg 报告插件中
ScreenShot Not showing in testNg Report plugin
我有一个问题,我截取的屏幕截图没有显示在 TestNg 报告插件中,我很确定问题出在我给他们的路径上,但我不知道我还能提供什么其他路径是否有解决方案?
我的截图代码:
public void ScreenShot() {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH_mm_ss");
LocalDateTime now = LocalDateTime.now();
String destDir = System.getProperty("user.dir") + "/" + "test-output/ScreenShots";
String FileName = "SoftAssertScreenshot_" + dtf.format(now) + ".png";
String DestFile = destDir + "/" + FileName;
Screenshot screenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(1000)).takeScreenshot(driver);
BufferedImage image = screenshot.getImage();
try {
ImageIO.write(image, "PNG", new File(DestFile));
System.out.println("test");
} catch (IOException e) {
e.printStackTrace();
}
Reporter.log("</br><font color='#73a9d0'>***************Screen Of the error****************</font>");
Reporter.log("</br><img id='ErrorResult' src='" + DestFile + "' style='width:600px'/>");
}
测试报告中显示的内容:
[![测试结果图片][1]][1]
Html 在 testng 中:
<img id="ErrorResult" src="C:\Users\user\eclipse-workspacezr-aut\Demo_Automatisation/test-output/ScreenShots/SoftAssertScreenshot_2021-11-24 08_50_12.png" style="width:600px">
感谢您的帮助!
[1]: https://i.stack.imgur.com/5zp1Y.png
我尝试了相同的代码,但看到了附件。
代码:
String DestFile = System.getProperty("user.dir") + "/Data/SO.png";
Reporter.log("</br><font color='#73a9d0'>***************Screen Of the error****************</font>");
Reporter.log("</br><img id='ErrorResult' src='" + DestFile + "' style='width:600px'/>");
输出:
HTML:
<img id="ErrorResult" src="C:\Users\Nandan\EclipseWorkspace\Selenium3_SO/Data/SO.png" style="width:600px">
您的 Reporter.log
代码没有任何问题。请尝试以下操作,
检查图片是否真的存在于位置C:\Users\user\eclipse-workspacezr-aut\Demo_Automatisation/test-output/ScreenShots/SoftAssertScreenshot_2021-11-24 08_50_12.png
在行 ImageIO.write(image, "PNG", new File(DestFile));
之后放置一个调试点以确认图像已成功写入给定位置。
screenshot.getImage();
getImage()
方法的目的是什么?它会返回 RenderedImage
吗?如果是,你在哪里传递文件位置?我正在做下面的事情并且它正在工作。您是否遵循相同的方法?
String DestFile = System.getProperty("user.dir") + "/Data/"+imageName+".png";
Image image = ImageIO.read(new File(DestFile));
BufferedImage buffered = (BufferedImage) image;
ImageIO.write(buffered, "PNG", new File(DestFile));
应该能帮到你。您需要找出 Jenkins 工作区中屏幕截图文件夹的确切位置并更新 String destDir
我有一个问题,我截取的屏幕截图没有显示在 TestNg 报告插件中,我很确定问题出在我给他们的路径上,但我不知道我还能提供什么其他路径是否有解决方案?
我的截图代码:
public void ScreenShot() {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH_mm_ss");
LocalDateTime now = LocalDateTime.now();
String destDir = System.getProperty("user.dir") + "/" + "test-output/ScreenShots";
String FileName = "SoftAssertScreenshot_" + dtf.format(now) + ".png";
String DestFile = destDir + "/" + FileName;
Screenshot screenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(1000)).takeScreenshot(driver);
BufferedImage image = screenshot.getImage();
try {
ImageIO.write(image, "PNG", new File(DestFile));
System.out.println("test");
} catch (IOException e) {
e.printStackTrace();
}
Reporter.log("</br><font color='#73a9d0'>***************Screen Of the error****************</font>");
Reporter.log("</br><img id='ErrorResult' src='" + DestFile + "' style='width:600px'/>");
}
测试报告中显示的内容: [![测试结果图片][1]][1]
Html 在 testng 中:
<img id="ErrorResult" src="C:\Users\user\eclipse-workspacezr-aut\Demo_Automatisation/test-output/ScreenShots/SoftAssertScreenshot_2021-11-24 08_50_12.png" style="width:600px">
感谢您的帮助! [1]: https://i.stack.imgur.com/5zp1Y.png
我尝试了相同的代码,但看到了附件。
代码:
String DestFile = System.getProperty("user.dir") + "/Data/SO.png";
Reporter.log("</br><font color='#73a9d0'>***************Screen Of the error****************</font>");
Reporter.log("</br><img id='ErrorResult' src='" + DestFile + "' style='width:600px'/>");
输出:
HTML:
<img id="ErrorResult" src="C:\Users\Nandan\EclipseWorkspace\Selenium3_SO/Data/SO.png" style="width:600px">
您的 Reporter.log
代码没有任何问题。请尝试以下操作,
检查图片是否真的存在于位置
C:\Users\user\eclipse-workspacezr-aut\Demo_Automatisation/test-output/ScreenShots/SoftAssertScreenshot_2021-11-24 08_50_12.png
在行
ImageIO.write(image, "PNG", new File(DestFile));
之后放置一个调试点以确认图像已成功写入给定位置。screenshot.getImage();
getImage()
方法的目的是什么?它会返回RenderedImage
吗?如果是,你在哪里传递文件位置?我正在做下面的事情并且它正在工作。您是否遵循相同的方法?
String DestFile = System.getProperty("user.dir") + "/Data/"+imageName+".png";
Image image = ImageIO.read(new File(DestFile));
BufferedImage buffered = (BufferedImage) image;
ImageIO.write(buffered, "PNG", new File(DestFile));
String destDir