Skip to content
Allure report logoAllure Report
Main Navigation ModulesDocumentationStarter Project

English

Español

English

Español

Appearance

Sidebar Navigation

Allure 3

Install & Upgrade

Install Allure

Upgrade Allure

Configure

Create Reports

How to generate a report

How to view a report

Improving readability of your test reports

Improving navigation in your test report

Reading Allure charts

Migrate from Allure 2

Allure 2

Install & Upgrade

Install for Windows

Install for macOS

Install for Linux

Install for Node.js

Upgrade Allure

Create Reports

How to generate a report

How to view a report

Improving readability of your test reports

Improving navigation in your test report

Features

Agent Mode

Test steps

Attachments

Test statuses

Assertion diffs

Sorting and filtering

Environments

Multistage Builds

Categories

Visual analytics

Test stability analysis

History and retries

Self-hosted storage

Quality Gate

Global Errors and Attachments

Timeline

Export to CSV

Export metrics

Guides

JUnit 5 parametrization

JUnit 5 & Selenide: screenshots and attachments

JUnit 5 & Selenium: screenshots and attachments

Setting up JUnit 5 with GitHub Actions

Pytest parameterization

Pytest & Selenium: screenshots and attachments

Pytest & Playwright: screenshots and attachments

Pytest & Playwright: videos

Playwright parameterization

Publishing Reports to GitHub Pages

Deploying Self-Hosted Storage with Docker

Deploying Self-Hosted Storage on Cloudflare Workers

Allure Report 3: XCResults Reader

How it works

Overview

Glossary

Test result file

Container file

Categories file

Environment file

Executor file

History files

Test Identifiers

Integrations

Azure DevOps

Bamboo

GitHub Action

Gradle

Jenkins

JetBrains IDEs

Maven

TeamCity

Visual Studio Code

Frameworks

AVA

Getting started

Configuration

Reference

Axios

Getting started

Configuration

Reference

Behat

Getting started

Configuration

Reference

Behave

Getting started

Configuration

Reference

Bun

Getting started

Configuration

Reference

Chai

Getting started

Reference

Codeception

Getting started

Configuration

Reference

CodeceptJS

Getting started

Configuration

Reference

Cucumber.js

Getting started

Configuration

Reference

Cucumber-JVM

Getting started

Configuration

Reference

Cucumber.rb

Getting started

Configuration

Reference

Cypress

Getting started

Configuration

Reference

Dart and Flutter

Getting started

Configuration

Reference

Diesel

Getting started

Configuration

Reference

Fetch

Getting started

Configuration

Reference

Go

Getting started

Configuration

Reference

Jasmine

Getting started

Configuration

Reference

JBehave

Getting started

Configuration

Reference

Jest

Getting started

Configuration

Reference

JUnit 4

Getting started

Configuration

Reference

JUnit 5

Getting started

Configuration

Reference

Mocha

Getting started

Configuration

Reference

Newman

Getting started

Configuration

Reference

Node.js Test Runner

Getting started

Configuration

Reference

NUnit

Getting started

Configuration

Reference

PHPUnit

Getting started

Configuration

Reference

Playwright

Getting started

Configuration

Reference

Playwright Java

Getting started

Configuration

Reference

pytest

Getting started

Configuration

Reference

Pytest-BDD

Getting started

Configuration

Reference

Reqnroll

Getting started

Configuration

Reference

Reqwest

Getting started

Configuration

Reference

REST Assured

Getting started

Configuration

Robot Framework

Getting started

Configuration

Reference

Rust Cargo Test

Getting started

Configuration

Reference

RSpec

Getting started

Configuration

Reference

Selenide

Getting started

Configuration

Reference

Selenium BiDi

Getting started

Configuration

Reference

SpecFlow

Getting started

Configuration

Reference

Spock

Getting started

Configuration

Reference

TestCafe

Getting started

Configuration

Reference

TestNG

Getting started

Configuration

Reference

Vitest

Getting started

Configuration

Reference

WebdriverIO

Getting started

Configuration

Reference

xUnit.net

Getting started

Configuration

Reference

On this page

Getting started with Allure Selenide ​

Allure Selenide latest version

Generate beautiful HTML reports using Allure Report and your Selenide tests.

Setting up ​

Allure Selenide works alongside your test framework — set up JUnit 5 or TestNG first, then add the steps below.

This integration targets Selenide 7.x and requires Java 17 or newer.

To integrate Allure Selenide into your project, you need to:

  1. Add Allure Selenide dependencies.
  2. Register the listener.
  3. Specify a location for Allure results storage.

Add Allure dependencies ​

xml
<!-- Define the version of Allure you want to use via the allure.version property -->
<properties>
    <allure.version>VERSION</allure.version>
</properties>

<!-- Add allure-bom to dependency management to ensure correct versions of all the dependencies are used -->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-bom</artifactId>
            <version>${allure.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<!-- Add necessary Allure dependencies to dependencies section -->
<dependencies>
    <dependency>
        <groupId>io.qameta.allure</groupId>
        <artifactId>allure-selenide</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>
kts
val allureVersion = "VERSION"

dependencies {
    testImplementation(platform("io.qameta.allure:allure-bom:$allureVersion"))
    testImplementation("io.qameta.allure:allure-selenide")
}
groovy
def allureVersion = "VERSION"

dependencies {
    testImplementation platform("io.qameta.allure:allure-bom:$allureVersion")
    testImplementation "io.qameta.allure:allure-selenide"
}

Register the listener ​

Register AllureSelenide as a Selenide listener before any browser actions run. The listener name ("allure") is an identifier used by Selenide's listener registry and can be any string, as long as it is unique among registered listeners.

java
import com.codeborne.selenide.logevents.SelenideLogger;
import io.qameta.allure.selenide.AllureSelenide;

SelenideLogger.addListener("allure", new AllureSelenide());

Register it once before your tests start — for example, in a JUnit 5 @BeforeAll, a TestNG @BeforeSuite, or a shared setup class:

java
@BeforeAll
static void setUpAllure() {
    SelenideLogger.addListener("allure", new AllureSelenide());
}

Steps and artifacts are only recorded when there is an active Allure test context. Selenide actions that run outside of a test — for example, in a static initializer or before the test framework starts a test — are silently ignored.

Specify Allure results location ​

Allure saves test results in the project's root directory by default. It is recommended to store results in the build output directory instead.

Create an allure.properties file in src/test/resources:

properties
allure.results.directory=target/allure-results
properties
allure.results.directory=build/allure-results
properties
allure.results.directory=build/allure-results

Generate a report ​

After running your tests, convert the results into an HTML report using one of these commands:

  • allure generate processes the test results and saves an HTML report into the allure-report directory. To view the report, use the allure open command.

  • allure serve creates the same report as allure generate, then automatically opens the main page of the report in a web browser.

Selenide actions as steps ​

Once the listener is registered, Allure Selenide records every Selenide log event as a step in the test report. No additional code is required.

Step names are generated from Selenide's log events and include the element locator, action name, and any arguments. The exact format is determined by Selenide. A failed step gets FAILED status when the underlying exception is an assertion error, or BROKEN for any other exception.

Steps are nested under any enclosing Allure steps you define:

java
Allure.step("Log in", () -> {
    $("#email").setValue("[email protected]");  // appears as a sub-step of "Log in"
    $("#password").setValue("secret");
    $(".login-btn").click();
});

By default, all Selenide log events are recorded as steps. To exclude Selenide's built-in element interaction steps (those of type SelenideLog) from the report, set .includeSelenideSteps(false) when registering the listener. Screenshots, page source, and browser logs are still captured on failure even when steps are excluded, and are attached to the enclosing Allure step or test. See configuration for details.

Capturing artifacts on failure ​

By default, when a Selenide step fails, Allure Selenide automatically captures artifacts and attaches them to that step in the report.

By default, the following are captured:

  • Screenshot — a PNG image of the current browser state (image/png), attached with the name Screenshot.
  • Page source — the current HTML of the page (text/html), attached with the name Page source.

By default, these are attached to the failing step rather than to the overall test result.

If the browser is not open at the time of failure — for example, when a step fails before the browser launches — no screenshot or page source is captured, and the step is still recorded with its failure status.

To disable either artifact, configure the listener when registering it:

java
SelenideLogger.addListener("allure", new AllureSelenide()
        .screenshots(false)
        .savePageSource(false));

See configuration for all available options.

Browser logs ​

Allure Selenide can capture Selenium WebDriver browser logs and attach them to a failing step. Log capture is disabled by default and must be enabled explicitly for each log type you want to collect.

java
import io.qameta.allure.selenide.LogType;
import java.util.logging.Level;

SelenideLogger.addListener("allure", new AllureSelenide()
        .enableLogs(LogType.BROWSER, Level.SEVERE));

Multiple log types can be enabled at once:

java
SelenideLogger.addListener("allure", new AllureSelenide()
        .enableLogs(LogType.BROWSER, Level.ALL)
        .enableLogs(LogType.PERFORMANCE, Level.ALL));

Each enabled log type produces a separate attachment named Logs from: <type> (for example, Logs from: browser). When steps are included (the default), the attachment is added to the failing Selenide step. When includeSelenideSteps(false) is set, it is attached to the enclosing Allure step or test instead.

Available LogType values correspond to Selenium's built-in log types: BROWSER, CLIENT, DRIVER, PERFORMANCE, PROFILER, and SERVER. Not all browsers support all log types — check your browser's WebDriver documentation for what is available.

Environment information ​

To add environment details (OS, Java version, browser, Selenide version) to the main report page, see Environment file.

Pager
Previous pageReference
Next pageConfiguration
Powered by

Subscribe to our newsletter

Get product news you actually need, no spam.

Subscribe
Allure TestOps
  • Overview
  • Why choose us
  • Cloud
  • Self-hosted
  • Success Stories
Company
  • Documentation
  • Blog
  • About us
  • Contact
  • Events
© 2026 Qameta Software Inc. All rights reserved.
A Markdown version of this page is available at /docs/selenide.md