All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.thoughtworks.selenium.ScreenshotListener Maven / Gradle / Ivy

There is a newer version: 4.20.0
Show newest version
package com.thoughtworks.selenium;

import org.testng.ITestContext;
import org.testng.ITestResult;
import org.testng.Reporter;
import org.testng.internal.IResultListener;

import java.io.File;

public class ScreenshotListener implements IResultListener {

  File outputDirectory;
  Selenium selenium;

  public ScreenshotListener(File outputDirectory, Selenium selenium) {
    this.outputDirectory = outputDirectory;
    this.selenium = selenium;
  }

  public void onTestFailure(ITestResult result) {
    Reporter.setCurrentTestResult(result);

    try {
      outputDirectory.mkdirs();
      File outFile = File.createTempFile("TEST-" + result.getName(), ".png", outputDirectory);
      outFile.delete();
      selenium.captureScreenshot(outFile.getAbsolutePath());
      Reporter.log("screenshot");
    } catch (Exception e) {
      e.printStackTrace();
      Reporter.log("Couldn't create screenshot");
      Reporter.log(e.getMessage());
    }

    Reporter.setCurrentTestResult(null);
  }

  public void onConfigurationFailure(ITestResult result) {
    onTestFailure(result);
  }


  public void onFinish(ITestContext context) {
  }

  public void onStart(ITestContext context) {
    outputDirectory = new File(context.getOutputDirectory());
  }

  public void onTestFailedButWithinSuccessPercentage(ITestResult result) {
  }



  public void onTestSkipped(ITestResult result) {
  }

  public void onTestStart(ITestResult result) {
  }

  public void onTestSuccess(ITestResult result) {
  }

  public void onConfigurationSuccess(ITestResult itr) {
  }


  public void onConfigurationSkip(ITestResult itr) {
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy