diff --git a/allure-selenide/build.gradle.kts b/allure-selenide/build.gradle.kts index 1ff5c5605..14e6db811 100644 --- a/allure-selenide/build.gradle.kts +++ b/allure-selenide/build.gradle.kts @@ -1,6 +1,6 @@ description = "Allure Selenide Integration" -val selenideVersion = "5.1.0" +val selenideVersion = "5.2.3" dependencies { api(project(":allure-java-commons")) diff --git a/allure-selenide/src/main/java/io/qameta/allure/selenide/AllureSelenide.java b/allure-selenide/src/main/java/io/qameta/allure/selenide/AllureSelenide.java index 94d384b64..a548f878e 100644 --- a/allure-selenide/src/main/java/io/qameta/allure/selenide/AllureSelenide.java +++ b/allure-selenide/src/main/java/io/qameta/allure/selenide/AllureSelenide.java @@ -35,10 +35,11 @@ */ @SuppressWarnings("unused") public class AllureSelenide implements LogEventListener { - private boolean saveScreenshots = true; private boolean savePageHtml = true; + private String stepUUID; + private final AllureLifecycle lifecycle; public AllureSelenide() { @@ -60,34 +61,34 @@ public AllureSelenide savePageSource(final boolean savePageHtml) { } @Override - public void onEvent(final LogEvent event) { - lifecycle.getCurrentTestCase().ifPresent(uuid -> { - final String stepUUID = UUID.randomUUID().toString(); - lifecycle.startStep(stepUUID, new StepResult() - .setName(event.toString()) - .setStatus(Status.PASSED)); + public void beforeEvent(final LogEvent event) { + stepUUID = UUID.randomUUID().toString(); + lifecycle.startStep(stepUUID, new StepResult() + .setName(event.toString()) + .setStatus(Status.PASSED)); + } - lifecycle.updateStep(stepResult -> stepResult.setStart(stepResult.getStart() - event.getDuration())); + @Override + public void afterEvent(final LogEvent event) { + lifecycle.updateStep(stepResult -> stepResult.setStart(stepResult.getStart() - event.getDuration())); - if (LogEvent.EventStatus.FAIL.equals(event.getStatus())) { - if (saveScreenshots) { - lifecycle.addAttachment("Screenshot", "image/png", "png", getScreenshotBytes()); - } - if (savePageHtml) { - lifecycle.addAttachment("Page source", "text/html", "html", getPageSourceBytes()); - } - lifecycle.updateStep(stepResult -> { - final StatusDetails details = ResultsUtils.getStatusDetails(event.getError()) - .orElse(new StatusDetails()); - stepResult.setStatus(ResultsUtils.getStatus(event.getError()).orElse(Status.BROKEN)); - stepResult.setStatusDetails(details); - }); + if (LogEvent.EventStatus.FAIL.equals(event.getStatus())) { + if (saveScreenshots) { + lifecycle.addAttachment("Screenshot", "image/png", "png", getScreenshotBytes()); } - lifecycle.stopStep(stepUUID); - }); + if (savePageHtml) { + lifecycle.addAttachment("Page source", "text/html", "html", getPageSourceBytes()); + } + lifecycle.updateStep(stepResult -> { + final StatusDetails details = ResultsUtils.getStatusDetails(event.getError()) + .orElse(new StatusDetails()); + stepResult.setStatus(ResultsUtils.getStatus(event.getError()).orElse(Status.BROKEN)); + stepResult.setStatusDetails(details); + }); + } + lifecycle.stopStep(stepUUID); } - private static byte[] getScreenshotBytes() { return ((TakesScreenshot) WebDriverRunner.getWebDriver()).getScreenshotAs(OutputType.BYTES); } @@ -95,5 +96,4 @@ private static byte[] getScreenshotBytes() { private static byte[] getPageSourceBytes() { return WebDriverRunner.getWebDriver().getPageSource().getBytes(StandardCharsets.UTF_8); } - }