我正在使用 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";
}
关于如何解决这个问题,我有两个不相关的想法。但我需要一些帮助来开始使用它们。我愿意接受其他建议。
将图像直接嵌入到 HTML 报告中,或以某种方式发送包含 HTML 报告屏幕截图的文件夹。但是,HTML 仍将引用我的原始位置,并且图像将被破坏。
与所有人、 guest 和匿名用户共享包含图像的文件夹,以便域外的人员可以打开引用此位置的 HTML。我不知道如何设置这些权限,而且我什至不确定这样做是否会允许外部用户查看引用该位置的 HTML。
最佳答案
请尝试使用base64编码,它一定可以工作。 另外,请检查您的浏览器支持。
试试这个:
<img src="data:image/jpeg;base64,/9j/4AAQxxxxxxxx...." />
关于java - 如何通过电子邮件发送嵌入图像的 HTML 报告(作为附件)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42115372/