how to take screenshot in failed test scenarios code example

Example 1: how to take failed screenshot in selenium

HOW TO TAKE SCREENSHOT FOR FAILED SCENARIOS

I have a tearDown method in my Hooks Class. 
I keep my screenshot codes in it. It takes screenshot
as soon as any scenario fails.

	@After
	public void tearDown(Scenario scenario) {
   if(scenario.isFailed()) {
  TakesScreenshot screen=(TakesScreenshot)Driver.getDriver();
  final byte[] screenshot = 
      screen.getScreenshotAs(OutputType.BYTES); ==> taking screenshot
  scenario.embed(screenshot, "image/png"); 
              ==> adding screenshot to the report 
    }
	}

Example 2: how to take screenshot in failed test scenarios

HOW TO TAKE SCREENSHOT IN ANY TEST CASE WITHOUT FAILURE

 TakesScreenshot screen=(TakesScreenshot)Driver.getDriver();
 File screenshot=screen.getScreenshotAs(OutputType.FILE);
 FileUtils.copyFile(screenshot, new File("<your folder path here>"));
 
 HOW TO TAKE SCREENSHOT FOR FAILED SCENARIOS

I have a tearDown method in my Hooks Class. 
I keep my screenshot codes in it. It takes screenshot
as soon as any scenario fails.

	@After
	public void tearDown(Scenario scenario) {
   if(scenario.isFailed()) {
  TakesScreenshot screen=(TakesScreenshot)Driver.getDriver();
  final byte[] screenshot = 
      screen.getScreenshotAs(OutputType.BYTES); ==> taking screenshot
  scenario.embed(screenshot, "image/png"); 
              ==> adding screenshot to the report 
    }
	}