Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/).

---

### Unreleased
### v3.10.0 — 2026-11-04

- **HTML report: print stylesheet for "Save as PDF"** — printing the report now produces a clean document: UI chrome is hidden, all sections print instead of only the active tab, collapsed groups and failed-test details (error and full stack trace) are expanded, the light palette is used even in dark mode, and your on-screen filters are restored afterwards. (#221, #236)

- **HTML report: execution timeline** — the dashboard now shows a Gantt-style timeline of when each test started and ended, built from the new per-test `startedAtMs` export. (#201)

- **HTML report: results by tag** — a tag breakdown from TestNG groups, Cucumber tags and JUnit 5 tags, with click-to-filter in the Test Cases tab. (#167, #189)

- **HTML report: refreshed theme and restructured markup** — the report's CSS, JavaScript and HTML partials are now separate files and the theme is aligned across tabs. (#192, #193, #194)

- **Tracing: failure traces recorded by default in CI** — when `tracing.enabled` is not set, failed-test traces are recorded in CI and stay off locally. An explicit `true`/`false` still wins. (#198)

- **Selenium Java 4.51.0 → 4.52.0** — internal upgrade. 4.52.0 no longer ships the CDP `devtools.v153` module, so `NetworkMock`, `DeviceEmulator` and the network trackers now use `devtools.v154`. No API change. (#238)

- **HTML report: status and tag filter persistence** — the active status filter (All, Passed, Failed, Skipped, Flaky) and tag filter in the Test Cases tab are now persisted across page reloads and reopens using `localStorage` (`sb-status-filter` and `sb-tag-filter`). Storage reads and writes are safely guarded against restricted environments (private browsing, disabled storage, quota limits); if a previously stored tag is not present in the current report, it is gracefully ignored without restricting rows, and restoring filters preserves the default Dashboard tab view. (#215)

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Three files. Copy them as-is and `mvn test` goes green against a real Chrome.
<dependency>
<groupId>io.github.seleniumboot</groupId>
<artifactId>selenium-boot</artifactId>
<version>3.9.0</version>
<version>3.10.0</version>
</dependency>
</dependencies>

Expand Down Expand Up @@ -286,7 +286,7 @@ Grab the jar from the [latest release](https://github.com/seleniumboot/selenium-

## Project Status

**Current release: v3.9.0** — failure intelligence (triage and suggested actions, AI provider choice, run summary), trend charts, Cucumber on the JUnit Platform, and more `Locator` actions.
**Current release: v3.10.0** — report timeline, results by tag, print-to-PDF stylesheet and a refreshed theme, LambdaTest and Firefox network mocking, richer traces, and Selenium 4.52.0.

See the full version history in **[CHANGELOG.md](CHANGELOG.md)**.

Expand Down
20 changes: 19 additions & 1 deletion docs-site/docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,25 @@ sidebar_position: 99

All notable changes to Selenium Boot are documented here.

## [Unreleased]
## [3.10.0] — 2026-11-04

- **HTML report: print stylesheet for "Save as PDF"** — printing the report now produces a clean document: UI chrome is hidden, all sections print instead of only the active tab, collapsed groups and failed-test details (error and full stack trace) are expanded, the light palette is used even in dark mode, and your on-screen filters are restored afterwards. (#221, #236)

- **HTML report: execution timeline** — the dashboard now shows a Gantt-style timeline of when each test started and ended, built from the new per-test `startedAtMs` export. (#201)

- **HTML report: results by tag** — a tag breakdown from TestNG groups, Cucumber tags and JUnit 5 tags, with click-to-filter in the Test Cases tab. (#167, #189)

- **HTML report: refreshed theme and restructured markup** — the report's CSS, JavaScript and HTML partials are now separate files and the theme is aligned across tabs. (#192, #193, #194)

- **Tracing: failure traces recorded by default in CI** — when `tracing.enabled` is not set, failed-test traces are recorded in CI and stay off locally. An explicit `true`/`false` still wins. (#198)

- **Selenium Java 4.51.0 → 4.52.0** — internal upgrade. 4.52.0 no longer ships the CDP `devtools.v153` module, so `NetworkMock`, `DeviceEmulator` and the network trackers now use `devtools.v154`. No API change. (#238)

- **HTML report: status and tag filter persistence** — the active status filter (All, Passed, Failed, Skipped, Flaky) and tag filter in the Test Cases tab are now persisted across page reloads and reopens using `localStorage` (`sb-status-filter` and `sb-tag-filter`). Storage reads and writes are safely guarded against restricted environments (private browsing, disabled storage, quota limits); if a previously stored tag is not present in the current report, it is gracefully ignored without restricting rows, and restoring filters preserves the default Dashboard tab view. (#215)

- **HTML report: "Copy failure details" button** — failed tests with an error now have a button in the expanded detail row (and on the Failures tab) that copies the test id, error message and stack trace to the clipboard, with brief "Copied" feedback. Falls back to `execCommand('copy')` when `navigator.clipboard` is unavailable (e.g. some `file://` setups). (#216)

- **Fix: `@PreCondition` session restore on a fresh browser** — the cached cookies and localStorage were silently dropped when the next test started on `about:blank`, so only the first test per thread was logged in. Restore now navigates to the origin the session was captured on first.

- **LambdaTest cloud provider** — `execution.mode: lambdatest` now creates W3C
`LT:Options` sessions, supports environment-based credentials and capability
Expand Down
4 changes: 2 additions & 2 deletions docs-site/docs/cucumber.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Add Cucumber to your project alongside Selenium Boot.
<dependency>
<groupId>io.github.seleniumboot</groupId>
<artifactId>selenium-boot</artifactId>
<version>3.9.0</version>
<version>3.10.0</version>
</dependency>

<dependency>
Expand Down Expand Up @@ -52,7 +52,7 @@ Add Cucumber to your project alongside Selenium Boot.
<dependency>
<groupId>io.github.seleniumboot</groupId>
<artifactId>selenium-boot</artifactId>
<version>3.9.0</version>
<version>3.10.0</version>
</dependency>

<dependency>
Expand Down
6 changes: 3 additions & 3 deletions docs-site/docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ config, a page object and passing tests, ready for `mvn test`.
<dependency>
<groupId>io.github.seleniumboot</groupId>
<artifactId>selenium-boot</artifactId>
<version>3.9.0</version>
<version>3.10.0</version>
</dependency>
```

Expand All @@ -50,7 +50,7 @@ config, a page object and passing tests, ready for `mvn test`.

```groovy title="build.gradle"
dependencies {
testImplementation 'io.github.seleniumboot:selenium-boot:3.9.0'
testImplementation 'io.github.seleniumboot:selenium-boot:3.10.0'
}

test {
Expand All @@ -64,7 +64,7 @@ test {

```kotlin title="build.gradle.kts"
dependencies {
testImplementation("io.github.seleniumboot:selenium-boot:3.9.0")
testImplementation("io.github.seleniumboot:selenium-boot:3.10.0")
}

tasks.test {
Expand Down
10 changes: 5 additions & 5 deletions docs-site/docs/gradle.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ repositories {
}

dependencies {
testImplementation 'io.github.seleniumboot:selenium-boot:3.9.0'
testImplementation 'io.github.seleniumboot:selenium-boot:3.10.0'
}
```

Expand All @@ -46,7 +46,7 @@ repositories {
}

dependencies {
testImplementation("io.github.seleniumboot:selenium-boot:3.9.0")
testImplementation("io.github.seleniumboot:selenium-boot:3.10.0")
}
```

Expand Down Expand Up @@ -114,7 +114,7 @@ If you're using `BaseJUnit5Test` or `@EnableSeleniumBoot`:

```groovy title="build.gradle"
dependencies {
testImplementation 'io.github.seleniumboot:selenium-boot:3.9.0'
testImplementation 'io.github.seleniumboot:selenium-boot:3.10.0'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.2'
}
Expand All @@ -130,7 +130,7 @@ test {

```kotlin title="build.gradle.kts"
dependencies {
testImplementation("io.github.seleniumboot:selenium-boot:3.9.0")
testImplementation("io.github.seleniumboot:selenium-boot:3.10.0")
testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.2")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.2")
}
Expand Down Expand Up @@ -278,7 +278,7 @@ repositories {
}

dependencies {
testImplementation 'io.github.seleniumboot:selenium-boot:3.9.0'
testImplementation 'io.github.seleniumboot:selenium-boot:3.10.0'
}

test {
Expand Down
2 changes: 1 addition & 1 deletion docs-site/docs/junit5.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Selenium Boot supports both **TestNG** (built-in) and **JUnit 5** (opt-in). The
<dependency>
<groupId>io.github.seleniumboot</groupId>
<artifactId>selenium-boot</artifactId>
<version>3.9.0</version>
<version>3.10.0</version>
</dependency>

<dependency>
Expand Down
2 changes: 1 addition & 1 deletion docs-site/docs/migration/from-selenium-testng.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Remove your Selenium, WebDriverManager, and reporting dependencies and add one:
<dependency>
<groupId>io.github.seleniumboot</groupId>
<artifactId>selenium-boot</artifactId>
<version>3.9.0</version>
<version>3.10.0</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion docs-site/src/pages/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ export default function Home() {
code={`<dependency>
<groupId>io.github.seleniumboot</groupId>
<artifactId>selenium-boot</artifactId>
<version>3.9.0</version>
<version>3.10.0</version>
</dependency>`}
/>
</div>
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>io.github.seleniumboot</groupId>
<artifactId>selenium-boot</artifactId>
<version>3.9.0</version>
<version>3.10.0</version>
<packaging>jar</packaging>

<name>Selenium Boot</name>
Expand Down
Loading