Search code examples
seleniumtestngreportng

Unable to add screenshot in ReportNG HTML report


I am trying to take a screenshot for failure methods and also want to put the same in my Report, I am able to take the screenshot but unable to show the same in HTML report. Following is my code, friends any clue on this ?

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();
        }
}

Solution

  • Have you set ESCAPE_PROPERTY to false? This is what you will have to do if you want reportng to post the screenshot -

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

    and in your setUp-

        System.setProperty(ESCAPE_PROPERTY, "false");