I try to capture a screenshot for each failure and wrote the following code, but this does not work.
public class TestFile { WebDriver driver = new FirefoxDriver(); @Test public void Testone(){ driver.get("http://www.google.com/"); } @AfterMethod(alwaysRun=true) public void catchExceptions(ITestResult result){ System.out.println("result"+result); String methodName = result.getName(); System.out.println(methodName); if(!result.isSuccess()){ try { File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(scrFile,new File("C:\\screenshot2.png" )); } catch (IOException e1) { e1.printStackTrace(); } } } }
This does not work when
File driver scrFile = ((TakesScreenshot)). GetScreenshotAs (OutputType.FILE);
stack trace:
[TestNG] Running: C:\Documents and Settings\537310\Local Settings\Temp\testng-eclipse-1576306112\testng-customsuite.xml result[TestResult name=Testone status=FAILURE method=TestFile.Testone()[pri:0, instance: com.example.tests.TestFile@1b34126 ] output={null}] FAILED CONFIGURATION: @AfterMethod catchExceptions([TestResult name=Testone status=FAILURE method=TestFile.Testone()[pri:0, instance: com.example.tests.TestFile@1b34126 ] output={null}]) net.sf.cglib.core.CodeGenerationException: java.lang.IllegalAccessException-->Class org.openqa.selenium.remote.Augmenter$CompoundHandler can not access a member of class org.openqa.selenium.firefox.FirefoxDriver with modifiers "protected" at net.sf.cglib.core.ReflectUtils.newInstance(ReflectUtils.java:235)
import list:
package com.example.tests; import org.testng.annotations.Test; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Calendar; import org.apache.commons.io.FileUtils; import org.junit.Before; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.remote.Augmenter; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.ITestResult; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test;
Pal
source share