Вам необходимо определить объект отчета экстента на уровне класса или где угодно.И тогда вы можете использовать его на отказ.
- Для местоположения отчета: Создать новую папку с именем Report в каталоге проекта в корневом каталоге
- Для местоположения снимка экрана: Создать новую папку с именем Screenshots в каталоге вашего проекта в корневом каталоге
Код:
//Report Initialization
ExtentHtmlReporter htmlreport = new ExtentHtmlReporter(".\\Report\\Extent Report with Screenshot.html");
ExtentReports reports = new ExtentReports();
reports.attachReporter(htmlreport);
ExtentTest testlog;
//Capture and save screenshot
File screen = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
BufferedImage img = ImageIO.read(screen);
File filetest = Paths.get(".").toAbsolutePath().normalize().toFile();
ImageIO.write(img, "png", new File(filetest + "\\Screenshots\\" + "Test.png"));
//Log Screenshot in Report
testlog.info("Details of " + "Test screenshot", MediaEntityBuilder
.createScreenCaptureFromPath(System.getProperty("user.dir") + "\\Screenshots\\" + "Test.png").build());
//Flush Report-Mandatory, Else report will not generate.
reports.flush();
Вы можете сослаться на мой примерот Github ( Нажмите здесь ), для простоты использования.