我在使用图像文件的相对路径将屏幕截图附加到 ExtentReports 时遇到问题。执行时我的当前目录是“C:\Eclipse 64-bit\eclipse\workspace\SeleniumPractic”。在此之下,我为 report.html 和 image.png 截图创建了文件夹 ExtentReports,如下所示。
private String className = getClass().getName();
private String outputFolder = "ExtentReports\\";
private String outputFile = className + ".html";
ExtentReports report;
ExtentTest test;
@BeforeMethod
// initialise report variables
report = new ExtentReports(outputFolder + outputFile);
test = report.startTest(className);
// more setup code
@Test
// test method code with log statements
@AfterMethod
// takeScreenShot returns the relative path and filename for the image
String imgFilename = GenericMethods.takeScreenShot(driver,outputFolder);
String imagePath = test.addScreenCapture(imgFilename);
test.log(LogStatus.FAIL, "Added image to report", imagePath);
这会在 ExtentReports 文件夹中创建报告和图像,但是当打开报告并检查(空白)图像时,将鼠标悬停在图像 src 上会显示“无法加载图像”src=".\ExtentReports\QXKmoVZMW7.png"。
这可以通过使用系统属性“user.dir”为图像的相对路径和文件名添加前缀来解决。所以这完美地工作并且图像出现在html报告中。
克里斯
String imgFilename = GenericMethods.takeScreenShot(driver,System.getProperty("user.dir") + "\\" + outputFolder);
String imagePath = test.addScreenCapture(imgFilename);
test.log(LogStatus.FAIL, "Added image to report", imagePath);