Что хочу сделать:
Хочу чтобы при фейле теста в отчете показывался скрин момента, на котором тест упал.
Варианты:
1)Selenide уже делает скрины при падении и складывает их в /target/allure-results, но я не могу понять как указать Allure использовать эти скрины.
2)Так же пробовал использовать лисенер и через аннотацию @Attachment делать скрин в момент падения, но тоже не взлетело и этот вариант не особо мне нравится.
Вот пример кода для такого варианта:
@Rule
public TestWatcher screenshotOnFailure = new TestWatcher() {
@Override
protected void failed(Throwable e, Description description) {
makeScreenshotOnFailure();
}
@Attachment(“Screenshot on failure”)
public byte[] makeScreenshotOnFailure() {
return ((TakesScreenshot) WebDriverRunner.getWebDriver()).getScreenshotAs(OutputType.BYTES);
}
В итоге получаю
org.openqa.selenium.NoSuchSessionException:
invalid session id
Драйвер вырубается раньше чем делается скрин.
Прочитал уже весь stackoverflow и данный ресурс, однако все кейсы несколько отличаются и как я не пытался их адаптировать для меня не сработали.