Ich hatte Probleme beim Anhängen von Screenshots an ExtentReports mit einem relativen Pfad zu meiner Bilddatei. Mein aktuelles Verzeichnis beim Ausführen ist " C:\Eclipse 64-Bit \eclipse\workspace\SeleniumPractic ". Darunter habe ich den Ordner ExtentReports sowohl für den Bericht.html als auch für den Screenshot image.png erstellt (siehe unten).
private String className = getClass().getName();
private String outputFolder = "ExtentReports\\";
private String outputFile = className + ".html";
ExtentReports report;
ExtentTest test;
@BeforeMethod
// initialise report variables
report = new ExtentReports(outputFolder + outputFile);
test = report.startTest(className);
// more setup code
@Test
// test method code with log statements
@AfterMethod
// takeScreenShot returns the relative path and filename for the image
String imgFilename = GenericMethods.takeScreenShot(driver,outputFolder);
String imagePath = test.addScreenCapture(imgFilename);
test.log(LogStatus.FAIL, "Added image to report", imagePath);
Dadurch werden der Bericht und das Bild im Ordner "ExtentReports" erstellt, aber wenn der Bericht geöffnet und das (leere) Bild inspiziert wird, wird beim Überfahren des Bildes src="Could not load the image" angezeigt. \ExtentReports\QXKmoVZMW7.png ".
Dies wird dadurch gelöst, dass dem relativen Pfad und Dateinamen für das Bild die Systemeigenschaft "user.dir" vorangestellt wird. Dies funktioniert perfekt und das Bild erscheint im HTML-Bericht.
Chris
String imgFilename = GenericMethods.takeScreenShot(driver,System.getProperty("user.dir") + "\\" + outputFolder);
String imagePath = test.addScreenCapture(imgFilename);
test.log(LogStatus.FAIL, "Added image to report", imagePath);