扩展报告中的Base64图像屏幕快照在单击报告中的屏幕快照时显示垃圾值

时间:2019-03-29 04:30:26

标签: java selenium base64 extentreports selenium-extent-report

点击报告中的图像后,硒范围报告中的Base64图像无法正确显示。

搜索了各种来源以解决问题,但在任何地方都找不到答案

//依赖于POM.xml代码:-

<dependency>
 <groupId>com.aventstack</groupId>
 <artifactId>extentreports</artifactId>
 <version>3.1.5</version>
</dependency>

// ExtentReporterListener代码:-

public synchronized void onTestFailure(ITestResult result) {
    System.out.println((result.getMethod().getMethodName() + " failed!"));
    test.get().fail("Test failed due to below error");
    try {
        test.get().fail(result.getThrowable(), MediaEntityBuilder.createScreenCaptureFromPath(TestUtil.getScreenshotExtent()).build());
    } catch(IOException e) {
        System.err.
        println("Exception thrown while updating test fail status " + Arrays.toString(e.getStackTrace()));
    }
    test.get().getModel().setEndTime(getTime(result.getEndMillis()));
}

//捕获屏幕截图代码:-

public class TestUtil {
    public static String getScreenshotExtent() {
        String Base64StringofScreenshot = "";
        File src = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
        byte[] fileContent;
        try {
            fileContent = FileUtils.readFileToByteArray(src);
            Base64StringofScreenshot = "data:image/png;base64," + Base64.getEncoder().encodeToString(fileContent);
        } catch(IOException e) {
            e.printStackTrace();
        }
        return Base64StringofScreenshot;
    }
}

单击后,有人可以帮助您解决此问题并在范围报告中正确显示该图像吗?

1 个答案:

答案 0 :(得分:0)

能否让我知道您在哪个自动化套件中运行此自动化套件?

例如:您在64位Windows OS中使用Chrome浏览器,则需要检查已下载的chromedriver.exe(32位或64位)。如果您使用32位驱动程序,则这类问题来了。

如果您仍然找不到任何解决方案,请告诉我。