无法在ReportNG HTML报告中添加屏幕截图

时间:2013-02-05 08:15:46

标签: selenium testng reportng

我正在尝试为失败方法截取屏幕截图,并且也想在我的报告中添加相同内容,我可以截取屏幕截图,但无法在HTML报告中显示相同内容。以下是我的代码,朋友有什么线索吗?

public class SB1 {
    private static  Logger logger = Logger.getLogger(SB1.class);
    WebDriver driver = new FirefoxDriver();

@Test
public void Testone() {

    driver.get("http://www.google.com/");

    assert false;




}


public void catchExceptions(ITestResult result) {
    System.out.println("result" + result);
    String methodName = result.getName();
    System.out.println(methodName);

    if (!result.isSuccess()) {

        try {

        String failureImageFileName =  new SimpleDateFormat("MM-dd-yyyy_HH-ss").format(new GregorianCalendar().getTime())+ ".png"; 
        File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
        FileUtils.copyFile(scrFile, new File(failureImageFileName)); 

            String userDirector = System.getProperty("user.dir") + "/"; 
            Reporter.log("<a href=\""+ userDirector + failureImageFileName +"\"><img src=\"file:///" + userDirector 
                         + failureImageFileName + "\" alt=\"\""+ "height='100' width='100'/> "+"<br />"); 
            Reporter.setCurrentTestResult(null); 

        } catch (IOException e1) {
            e1.printStackTrace();
        }
}

3 个答案:

答案 0 :(得分:4)

您是否将ESCAPE_PROPERTY设置为false?如果您希望reportng发布屏幕截图,那么您将不得不这样做 -

    private static final String ESCAPE_PROPERTY = "org.uncommons.reportng.escape-output";

并在你的setUp中 -

    System.setProperty(ESCAPE_PROPERTY, "false");

答案 1 :(得分:0)

我试过这个。看起来如果你将System Property设置为false,它会从ENTIRE日志中删除转义...从我所知道的,报告是在测试之后生成的,当时系统属性设置为什么。我想插入截图(使用上面的代码),但我不想删除其他格式(br标签)。

答案 2 :(得分:0)

您可以使用以下代码。

Reporter.log("<br>Chrome driver launched for ClassOne</br>");

或者您可以使用自定义方法,每次都不需要附加br标记,使用以下自定义方法。

public void customLogReport(String testCaseDescription) throws Exception{ try{ Reporter.log("<br>" + testCaseDescription + "</br>"); }catch(Exception e){ e.printStackTrace(); } }