Пытаюсь настроить, чтобы делал скрин если тест падает
public class ScreenshotExtension implements TestWatcher {
@Override
public void testFailed(ExtensionContext context, Throwable throwable){
WebDriver driver = getDriver(context);
Allure.getLifecycle().addAttachment(
"Screenshot",
"image/png", "png",
((TakesScreenshot)driver).getScreenshotAs(OutputType.BYTES)
);
}
@Override
public void testDisabled(ExtensionContext context, Optional<String> reason) {
getDriver(context).close();
}
@Override
public void testSuccessful(ExtensionContext context) {
getDriver(context).close();
}
@Override
public void testAborted(ExtensionContext context, Throwable cause) {
getDriver(context).close();
}
private WebDriver getDriver(ExtensionContext context) {
Object instance = context.getRequiredTestInstance();
try {
Field field = instance.getClass().getDeclaredField("driver");
field.setAccessible(true);
return (WebDriver) field.get(instance);
} catch (NoSuchFieldException | IllegalAccessException e){
throw new RuntimeException(e);
}
}
}
драйвер у меня идет от класса utils в котором его инизиализирую ,а потом передаю в basePaige и от него конструктор ,что-то вроде синглтона
public class Utils {
private static WebDriver driver;
public static WebDriver getDriver() {
return driver;
}
@BeforeAll
public static void setUp() {
WebDriverManager.chromedriver().setup();
driver = DriverFactory.getWebDriver(Browsers.CHROME);
driver.manage().window().maximize();
}
@AfterAll
public static void rearDown() {
driver.quit();
Спасибо за помощь,объясните пожалуйста как настроить
падает с ошибкой не находит драйвер java.lang.RuntimeException: java.lang.NoSuchFieldException: driver