java - 如何通过电子邮件发送嵌入图像的 HTML 报告(作为附件)?

标签 java html selenium report jakarta-mail

我正在使用 ExtentReports 创建一个报告,以便通过电子邮件发送给域外的团队成员。我使用截图方法(如下)来保存测试失败的屏幕截图。它们存储在 ExtentReports HTML 报告的子文件夹中。

我将报告附加到电子邮件中,其中的图像对于具有文件夹权限的域中的团队成员来说可以正常显示。但我不知道如何允许该文件夹权限之外的人查看嵌入在报告中的图像。这是图像的 HTML,直接引用该文件。

<img class="report-img" data-featherlight="file:///\\domain.local\files\QA\Projects\AutomationReports\ExtentScreens\1486487870116.jpg" src="file:///\\domain.local\files\QA\Projects\AutomationReports\ExtentScreens\1486487870116.jpg">

这是我的截图方法。

public static String CaptureScreen(WebDriver driver) {
    String ImagesPath = "\\\\domain.local\\files\\QA\\Projects\\AutomationReports\\ExtentScreens\\"
            + new Date().getTime();

    TakesScreenshot oScn = (TakesScreenshot) driver;
    File oScnShot = oScn.getScreenshotAs(OutputType.FILE);
    File oDest = new File(ImagesPath + ".jpg");

    // System.out.println(ImagesPath);

    try {
        FileUtils.copyFile(oScnShot, oDest);
    } catch (IOException e) {
        System.out.println(e.getMessage());
    }
    return ImagesPath + ".jpg";
}

关于如何解决这个问题,我有两个不相关的想法。但我需要一些帮助来开始使用它们。我愿意接受其他建议。

  1. 将图像直接嵌入到 HTML 报告中,或以某种方式发送包含 HTML 报告屏幕截图的文件夹。但是,HTML 仍将引用我的原始位置,并且图像将被破坏。

  2. 与所有人、 guest 和匿名用户共享包含图像的文件夹,以便域外的人员可以打开引用此位置的 HTML。我不知道如何设置这些权限,而且我什至不确定这样做是否会允许外部用户查看引用该位置的 HTML。

最佳答案

请尝试使用base64编码,它一定可以工作。 另外,请检查您的浏览器支持。

试试这个:

<img src="data:image/jpeg;base64,/9j/4AAQxxxxxxxx...." />

关于java - 如何通过电子邮件发送嵌入图像的 HTML 报告(作为附件)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42115372/

相关文章:

javascript - 嵌入多个YouTube直播,并通过按钮管理显示

python - 如何使用 EC.presence_of_element_ located((By.ID, "myDynamicElement")) 除了指定类而不是 ID

java - 在 JAX-WS Web 服务中使用 @WebParam(partName) 注释不起作用

java - appium 的此 session 问题不支持定位器策略 'css selector'

java - 我们如何为循环创建的多个文本框指定相同的名称

html - Facebook 页面插件 - 拒绝在框架中显示,因为它将 'X-Frame-Options' 设置为 'sameorigin'

javascript - selenium - 单击由 javascript 生成的单选按钮

java - 是否有一种特定的方法可以从 java 代码调用特定场景,而不是使用 TestRunner 和标签?

java - JTable 不会跨越 JFrame 的边界

Java - 无重复数字数组