public final class SeleniumUtils {
public static String SCREENSHOT_PATH = "./screen_shots/";
private static final Logger log = LoggerFactory.getLogger(SeleniumUtils.class);
public static final String takeScreenShot() {
SeleniumUtils.log.info("Capture the screen.");
try {
File srcFile = Config.driver().getScreenshotAs(OutputType.FILE);
String fileName = UUID.randomUUID().toString().replaceAll("-", "") + ".png";
SeleniumUtils.log.info("Save Screenshot as: " + fileName);
FileUtils.copyFile(srcFile, new File(SeleniumUtils.SCREENSHOT_PATH + fileName));
return fileName;
} catch (IOException e) {
SeleniumUtils.log.error("Fail to save the screenshot", e);
return null;
}
}
}
When test is failed, take screenshot automatically
/**
* <p><b>
* When the case run failed, take screenshot automatically.
* </b></p>
*/
public class TakeScreenshotOnFailureListener extends TestListenerAdapter{
private static final Logger log = LoggerFactory.getLogger(TakeScreenshotOnFailureListener.class);
@Override
public void onTestFailure(ITestResult tr) {
super.onTestFailure(tr);
log.info("Test Fail: " + tr);
SeleniumUtils.takeScreenShot();
}
}