如何在 Selenium Extent 报告中添加 Base64 图像的缩略图

Posted

技术标签:

【中文标题】如何在 Selenium Extent 报告中添加 Base64 图像的缩略图【英文标题】:How to add thumbnail of Base64 image in Selenium Extent report 【发布时间】:2020-04-18 22:52:18 【问题描述】:

我一直在使用 base64 图像来将屏幕截图附加到我的 html 范围报告中。

我使用的代码如下。

Screenshot file = ((ITakesScreenshot)driver).GetScreenshot();
string image = file.AsBase64EncodedString;

exTest.Fail(msg, MediaEntityBuilder.CreateScreenCaptureFromBase64String(image).Build());
System.Diagnostics.Trace.WriteLine("FAIL >>>>  " + msg);

这是一个范围报告,其中包含我的截图图像的相对路径,如下所示。[这是我的期望]

Extent report with Base64 image button

这里显示的是 Base 64 按钮,而不是图像。我需要查看图像的缩略图而不是该按钮,并且图像仍然应该是 Base64(与 HTML 文件无关)。 请帮助我实现这一目标。

编辑:我正在使用范围报告 C# v3.1.3

【问题讨论】:

【参考方案1】:

你必须自己做。这是我使用 jsoup 的方法:

public static void addThumbnailToScreenshot(String filePath) throws IOException 
        File file = new File(filePath);
        Document report = Jsoup.parse(file, "UTF-8");
        Elements elements = report.select("a[data-featherlight='image']");
        for (Element element : elements) 
            if (element.attr("href").startsWith("data:image/png;base64")) 
                String thumbnail = String.format("<img class='r-img' src='%s'>", element.attr("href"));
                element.select("span").remove();
                element.append(thumbnail);
            
        
        BufferedWriter htmlWriter =
                new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filePath), "UTF-8"));
        htmlWriter.write(report.outerHtml());
        htmlWriter.close();
    

【讨论】:

以上是关于如何在 Selenium Extent 报告中添加 Base64 图像的缩略图的主要内容,如果未能解决你的问题,请参考以下文章

优化httprunner2.x测试报告

如何在 Jenkins 中配置 Selenium HTML 报告

Selenium2+python自动化32- 测试报告的易读性转载

Selenium:如何使用 NUnit 创建测试证据报告

Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告2(使用PyCharm )

Selenium 2自动化测试实战36(更易读的测试报告)