Java Selenium webdriver:将屏幕截图导出到robot框架日志文件

Java Selenium webdriver:将屏幕截图导出到robot框架日志文件,java,selenium-webdriver,webdriver,robotframework,Java,Selenium Webdriver,Webdriver,Robotframework,我正在将selenium webdriver与robot framework一起使用,我遇到以下问题: 我想在每次测试失败时制作一个屏幕截图,并将此屏幕截图导出到log.html文件 制作屏幕截图很容易: String path; try { WebDriver augmentedDriver = new Augmenter().augment(driver); File source = ((TakesScreenshot) augmentedD

我正在将selenium webdriver与robot framework一起使用,我遇到以下问题:

我想在每次测试失败时制作一个屏幕截图,并将此屏幕截图导出到log.html文件

制作屏幕截图很容易:

    String path;
    try {
        WebDriver augmentedDriver = new Augmenter().augment(driver);
        File source = ((TakesScreenshot) augmentedDriver)
                .getScreenshotAs(OutputType.FILE);
        path = "./screenshots/" + source.getName();
        FileUtils.copyFile(source, new File(path));
    } catch (IOException e) {
        path = "Failed to capture screenshot: " + e.getMessage();
    }
但问题是将屏幕截图导出为html

在selenium RC中,带有屏幕截图的html部分如下所示:

<tbody>
    <tr>
        <td class="time">15:25:44.968</td>
        <td class="fail level">FAIL</td>
        <td class="message">Value of text field 'xpath=//input' should have been '' but was 'VpomRihh3Xa' Screenshot: </td>
    </tr>
    <tr>
        <td colspan="3">
            <img src="./screenshots/screenshot175324738088103861.png">
        </td>
    </tr>
</tbody>

15:25:44.968
失败
文本字段“xpath=//input”的值应为“”,但为“VpomRihh3Xa”屏幕截图:
好的,所以我认为这应该是一个易于实现的函数,并将captureScreenshot()函数扩展为:

private String captureScreen() {

    String path;
    try {
        WebDriver augmentedDriver = new Augmenter().augment(driver);
        File source = ((TakesScreenshot) augmentedDriver)
                .getScreenshotAs(OutputType.FILE);
        path = "./screenshots/" + source.getName();
        FileUtils.copyFile(source, new File(path));
    } catch (IOException e) {
        path = "Failed to capture screenshot: " + e.getMessage();
    }

    StringBuilder builder = new StringBuilder();

    builder.append("\n<tr><td colspan=\"3\"><img src=\"").append(path).append("\"></tr></td>");

    System.out.println(builder.toString());

    return "";

}
private String captureScreen(){
字符串路径;
试一试{
WebDriver augmentedDriver=新的增强程序().augment(驱动程序);
文件源=((TakesScreenshot)augmentedDriver)
.getScreenshotAs(OutputType.FILE);
path=“./screenshots/”+source.getName();
copyFile(源,新文件(路径));
}捕获(IOE异常){
path=“未能捕获屏幕截图:”+e.getMessage();
}
StringBuilder=新的StringBuilder();
生成器。追加(“\n”);
System.out.println(builder.toString());
返回“”;
}
但问题是,这种实现方式不能满足我的需要。看起来不错,但我得到的只是标签中的一些文本,它们不会显示为图像

为了更好地理解它,这里是我得到的屏幕截图:

(由于声誉低,无法发布图像)


所以问题是-如何将屏幕截图导入robot framework log.html文件?

尝试使用以下示例:

 System.out.println("*HTML* <img src=\"testScreenshot.png\" width=\"800px\">");
System.out.println(“*HTML*”);