Nicht zum screenshot in Selenium
Bin ich versucht, einen screenshot für jeden Fehler auftreten und folgenden code geschrieben, aber das wird nicht funktionieren.
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();
}
}
}
}
Dies ist in Ermangelung an
Datei scrFile = ((TakesScreenshot) - Treiber).getScreenshotAs(OutputType.DATEI);
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)
Liste der Importe:
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;
- Was ist der stacktrace?
- Aktualisiert mit stacktrace
- Können Sie teilen Sie Ihre Importe?
- niharika_neo : Importe aktualisiert werden, in der Frage
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den stacktrace, die Sie gemeinsam nicht den stacktrace, aber ich denke, die testng-Protokoll.
Das Beispiel, das Sie eigentlich vorgesehen funktioniert. Ich habe gerade den test fehlschlagen, da in der @AfterMethod ein screenshot gemacht wird nur, wenn der test nicht bestanden wird: if(!Ergebnis.isSuccess())
Wenn ich dann ran die Beispiel wieder, ich habe:
java.io.FileNotFoundException: C:\screenshot2.png (Zugriff verweigert)
Dann änderte ich die Position des Bildes auf D:, wo sich die Berechtigungen korrekt sind, und er arbeitete von Ende zu Ende, ich sehe den screenshot.
Cheers
Hallo sinisa229 mihajlovski,
Dein script richtig funktioniert. aber es ist eine leichte Veränderung in Ihrem Skript. Wenn ich nicht kommentieren Sie die Zeile "assert false", es gibt Fehler.
Versuchen Sie Dies :
Statt
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);