You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:Selenium集成Extent Reports时截图显示破损如何解决?

解决Extent Reports截图显示破损的问题

以下是针对你遇到的截图显示破损问题的排查方向和修复方案:

1. 统一路径格式

代码中路径混用了/和\(比如"H:\\Screenshots/sss.png"),Windows系统下建议统一使用双反斜杠\\或正斜杠/,避免路径解析错误。

2. 改用相对路径替代绝对路径

Extent Reports对绝对路径的兼容性较差,尤其是报告文件被移动位置后。建议将截图存储到项目目录下的子文件夹,使用相对路径引用,比如./screenshots/sss.png。

3. 验证截图文件完整性

手动检查H:\Screenshots\sss.png是否存在且能正常打开。如果文件本身损坏(比如截图过程中出现IO异常),报告中必然显示破损。

4. 适配Extent Reports版本的API用法

不同版本的Extent Reports对截图路径的要求有差异,新版本更推荐使用相对路径。同时确保extent对象初始化时正确关联报告路径。

修正后的代码示例

// 创建截图存放目录(项目相对路径)
String screenshotDir = "./screenshots";
File dir = new File(screenshotDir);
if (!dir.exists()) {
    dir.mkdirs(); // 自动创建文件夹
}

// 生成并保存截图
File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
String screenshotPath = screenshotDir + "/sss.png";
try {
    FileHandler.copy(screenshot, new File(screenshotPath));
} catch (IOException e) {
    e.printStackTrace();
}

// 向Extent报告添加截图
test = extent.createTest("Opened huntington");
test.log(Status.PASS, "1st log passed");
test.addScreenCaptureFromPath(screenshotPath);
test.fail("details", MediaEntityBuilder.createScreenCaptureFromPath(screenshotPath).build());

额外配置建议

初始化Extent报告时,确保指定报告的本地路径,让相对路径能正确解析:

ExtentHtmlReporter htmlReporter = new ExtentHtmlReporter("./extent-report.html");
ExtentReports extent = new ExtentReports();
extent.attachReporter(htmlReporter);

内容的提问来源于stack exchange,提问作者Shreyas Penugonda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 17:30:12