javaselenium-webdriverscreenshotexceptionselenium-extent-report

Unable to take screenshot of failed test cases


I am trying to take the screenshot of failed test cases, but getting an error related to automation extension:

public static String captureScreenshot(WebDriver driver, String screenshotName)
{
try
{
    TakesScreenshot ts = (TakesScreenshot)driver;
    File source = ts.getScreenshotAs(OutputType.FILE);
    String userDirector = System.getProperty("user.dir");
    String resultFile = userDirector
            + "\\src\\main\\java\\utils\\screenshots\\"+screenshotName+".png";
    File destination = new File(resultFile);
    FileUtils.copyFile(source, destination);
    System.out.println("Screenshot Taken");
    return resultFile;

}
catch(Exception e)
{
    System.out.println("Exception while taking screenshot" + e.getMessage());
    return e.getMessage();

}   

and this is my class where I am calling this method

    @AfterMethod (alwaysRun = true) 
public void tearDown(ITestResult result) throws InterruptedException, IOException{
    if (result.getStatus()==ITestResult.FAILURE){
      String screenshot_path=Screenshot.captureScreenshot(driver, result.getName());
      String image = logger.addScreenCapture(screenshot_path);
      logger.log(LogStatus.FAIL, "Test Script Failed and TestScript name is ", image);
      Thread.sleep(3000);

    }
      report.endTest(logger);
      report.flush(); 
    //else if ((result.getStatus()== ITestResult.SUCCESS)){
    // logger.log(LogStatus.PASS, "test case Pass1" + result.getName());
    //}
    //TestBase.updateResult(1, "result.getName()", "Pass", "I dont Know");

     driver.close();
}

After running this I am getting following error:

TestCases failed and TestScript is KeepCookiesCheckInvalidScenario
Exception while taking screenshotunknown error: cannot get automation 
extension


 from unknown error: page could not be found: chrome-


extension://aapnijgdinlhnhlmodcfapnahmbfebeb/_generated_background_page.html
 (Session info: chrome=60.0.3112.113)
 (Driver info: chromedriver=2.27.440174 
 (e97a722caafc2d3a8b807ee115bfb307f7d2cfd9),platform=Windows NT 10.0.14393 
  x86_64) (WARNING: The server did not provide any stacktrace information)
  Command duration or timeout: 10.20 seconds

I also have tried by not closing the driver here, but its not working, please help


Solution

  • If you are using chrome then try below code for chrome properties:

    System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
    ChromeOptions options = new ChromeOptions();
    options.addArguments("test-type");
    options.addArguments("start-maximized");
    options.addArguments("--enable-automation");
    options.addArguments("test-type=browser");
    options.addArguments("disable-infobars");
    WebDriver driver = new ChromeDriver(options);
    

    I hope you would be able to solve your problem using above code . Enjoy !