What I do:
File file = getFile();
if ( file.getParentFile().exists() &&
file.getParentFile().isDirectory() ) {
log.debug("Log directory exists = '{}'",
file.getParentFile().getAbsolutePath());
try {
switch (browserType) {
case FIREFOX :
FileUtils.copyFile(((FirefoxDriver)
WebDriverRunner.getInstance().getWebDriver()).getScreenshotAs(OutputType.FILE),
file);
break;
case INTERNET_EXPLORER :
final Rectangle captureSize = new
Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
final Robot robot = new Robot();
BufferedImage bufferedImage =
robot.createScreenCapture(captureSize);
ImageIO.write(bufferedImage, "png", file);
break;
case CHROME :
FileUtils.copyFile(((ChromeDriver)
WebDriverRunner.getInstance().getWebDriver()).getScreenshotAs(OutputType.FILE),
file);
break;
default:
log.error("Unable to take screen capture.
Unsupported browser type: '{}'", browserType.toString());
}
log.debug("Successfully took webpage screen capture
saving to file = '"+ file.getAbsolutePath() +"'");
return formatReturn(file.getName());
} catch (Exception ex) {
log.error("Failed to take screen capture, Caused By:
"+ ex.getMessage());
}
} else {
log.error("Unable to take screen capture. Log directory
does not exist = '"+ file.getParentFile().getAbsolutePath() +"'");