提问者:小点点

如何在硒范围报告中添加 Base64 图像的缩略图


我一直在使用 base64 图像作为要附加到 HTML 范围报告中的屏幕截图。

我一直使用的代码如下。

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

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

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

带有 Base64 图像按钮的范围报表

这里显示的不是图像,而是 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();
    }