It is always a good idea to have a screenshot for investigating what was the state of the application at the time of exception/halt of execution.
Although Selenium WebDriver provides default functions to take the screenshots of the browser at the exception. See example here
The alternate is to capture the full screenshot (Screenshot covering the full desktop) at the time of exception or error occurred on the screen.
Note: When the test execution is failing because of "Model Pop Up" on the browser, default function of the WebDriver will not be able to capture the Model Pop Up in the screenshot.
Git Hub Link
Although Selenium WebDriver provides default functions to take the screenshots of the browser at the exception. See example here
The alternate is to capture the full screenshot (Screenshot covering the full desktop) at the time of exception or error occurred on the screen.
Note: When the test execution is failing because of "Model Pop Up" on the browser, default function of the WebDriver will not be able to capture the Model Pop Up in the screenshot.
Git Hub Link
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; public class FullScreenShot { final static String fileLocation = "D:\\ScreenShot\\"; public static void main(String[] args) { try { WebDriver driver = new FirefoxDriver(); driver.get("http://www.testautomation4all.com"); driver.findElement(By.id("some-non-existing-element")).click(); } catch (Exception e) { captureEnirePageScreenshot("Unexpected error"); } } public static void captureEnirePageScreenshot(String screenShotName) { try { // Capture the dimensions of the screen Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); // Convert the dimensions into rectangle object type Rectangle rec = new Rectangle(d); // Take the screenshot using the Robot instance Robot robot = new Robot(); BufferedImage myImage = robot.createScreenCapture(rec); File img = new File(fileLocation + screenShotName + ".png"); ImageIO.write(myImage, "png", img); System.out.println("Done"); } catch (Exception e) { e.printStackTrace(); } } }