Skip to content

Commit

Permalink
only take screenshot for open browser (fixes #379, via #380)
Browse files Browse the repository at this point in the history
  • Loading branch information
asolntsev authored and baev committed Jul 25, 2019
1 parent 09b259f commit 0b69ec6
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,16 @@
import io.qameta.allure.model.StepResult;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriverException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.nio.charset.StandardCharsets;
import java.util.Optional;
import java.util.UUID;

import static io.qameta.allure.util.ResultsUtils.getStatus;
import static io.qameta.allure.util.ResultsUtils.getStatusDetails;
import static java.nio.charset.StandardCharsets.UTF_8;

/**
* @author Artem Eroshenko.
Expand Down Expand Up @@ -70,8 +69,9 @@ public AllureSelenide savePageSource(final boolean savePageHtml) {

private static Optional<byte[]> getScreenshotBytes() {
try {
return Optional.of((TakesScreenshot) WebDriverRunner.getWebDriver())
.map(wd -> wd.getScreenshotAs(OutputType.BYTES));
return WebDriverRunner.hasWebDriverStarted()
? Optional.of(((TakesScreenshot) WebDriverRunner.getWebDriver()).getScreenshotAs(OutputType.BYTES))
: Optional.empty();
} catch (WebDriverException e) {
LOGGER.warn("Could not get screen shot", e);
return Optional.empty();
Expand All @@ -80,9 +80,9 @@ private static Optional<byte[]> getScreenshotBytes() {

private static Optional<byte[]> getPageSourceBytes() {
try {
return Optional.of(WebDriverRunner.getWebDriver())
.map(WebDriver::getPageSource)
.map(ps -> ps.getBytes(StandardCharsets.UTF_8));
return WebDriverRunner.hasWebDriverStarted()
? Optional.of(WebDriverRunner.getWebDriver().getPageSource().getBytes(UTF_8))
: Optional.empty();
} catch (WebDriverException e) {
LOGGER.warn("Could not get page source", e);
return Optional.empty();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,16 @@
import com.codeborne.selenide.logevents.SelenideLogger;
import io.qameta.allure.Allure;
import io.qameta.allure.model.Attachment;
import io.qameta.allure.model.Stage;
import io.qameta.allure.model.Status;
import io.qameta.allure.model.StepResult;
import io.qameta.allure.test.AllureFeatures;
import io.qameta.allure.test.AllureResults;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.WebDriverException;
import org.openqa.selenium.chrome.ChromeDriver;

import java.nio.charset.StandardCharsets;
Expand All @@ -42,6 +46,12 @@
*/
class AllureSelenideTest {

@BeforeEach
@AfterEach
void closeBrowser() {
WebDriverRunner.closeWebDriver();
}

@AllureFeatures.Steps
@Test
void shouldLogPassedSteps() {
Expand Down Expand Up @@ -175,6 +185,29 @@ void shouldSavePageSourceOnFail() {
.isEqualTo("dummy-page-source");
}

@AllureFeatures.Attachments
@Test
void shouldNotFailIfBrowserIsNotOpened() {
final AllureResults results = runWithinTestContext(() -> {
final AllureSelenide selenide = new AllureSelenide()
.savePageSource(false)
.screenshots(true);
SelenideLogger.addListener(UUID.randomUUID().toString(), selenide);
final SelenideLog log = SelenideLogger.beginStep(
"open",
"https://some.url"
);
SelenideLogger.commitStep(log, new WebDriverException("failed to open a browser"));
});

final StepResult selenideStep = extractStepFromResults(results);
assertThat(selenideStep.getStatus()).isEqualTo(Status.BROKEN);
assertThat(selenideStep.getStatusDetails().getMessage()).startsWith("failed to open a browser");
assertThat(selenideStep.getName()).isEqualTo("$(open) https://some.url");
assertThat(selenideStep.getStage()).isEqualTo(Stage.FINISHED);
assertThat(selenideStep.getAttachments()).hasSize(0);
}

@AllureFeatures.Steps
@Test
void shouldLogFailedSteps() {
Expand Down

0 comments on commit 0b69ec6

Please sign in to comment.