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

求助:使用Cucumber Scenario API转换byte[]图片为Base64失败

问题:Cucumber+Extent Report Base64截图显示损坏

尝试通过Cucumber API将byte[]格式的截图转换为Base64后附加到Extent Report,转换后的图片显示损坏;但直接附加byte[]格式的截图可以正常显示。

使用版本

  • Cucumber版本:6.9.0
  • Extent Report适配器:extentreports-cucumber6-adapter:2.8.0

无法正常工作的代码(手动转换Base64)

@After(order = 1)
public void tearDown(Scenario scenario) {
    if (scenario.isFailed()) {
        // take screenshot:
        String screenshotName = scenario.getName().replaceAll(" ", "_");
        byte[] sourcePath = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
        String base64Img = Base64.getEncoder().encodeToString(sourcePath);
        scenario.attach(base64Img, "image/png", screenshotName);
    }
}

无法正常工作的代码(直接获取Base64)

@After(order = 1)
public void tearDown(Scenario scenario) {
    if (scenario.isFailed()) {
        // take screenshot:
        String screenshotName = scenario.getName().replaceAll(" ", "_");
        String sourcePath = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BASE64);
        scenario.attach(sourcePath, "image/png", screenshotName);
    }
}

可以正常工作的代码(直接使用byte[])

@After(order = 1)
public void tearDown(Scenario scenario) {
    if (scenario.isFailed()) {
        // take screenshot:
        String screenshotName = scenario.getName().replaceAll(" ", "_");
        byte[] sourcePath = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
        scenario.attach(sourcePath, "image/png", screenshotName);
    }
}

恳请各位提供解决建议或指导!

内容的提问来源于stack exchange,提问作者Sanghamitra Bhowmick

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 12:15:48