๐ŸŒ US-Proxy
class="navigation-with-keyboard">
Skip to main content
Java ยท Selenium ยท TestNG ยท JUnit 5

Test automation
without the noise

Zero-boilerplate Java test automation โ€” inspired by Spring Boot

pom.xml
<dependency>
  <groupId>io.github.seleniumboot</groupId>
  <artifactId>selenium-boot</artifactId>
  <version>3.0.0</version>
</dependency>
LoginTest.java
public class LoginTest extends BaseTest {

  @Test(description = "Valid user can log in")
  public void loginTest() {
    StepLogger.step("Open login page");
    open();

    StepLogger.step("Enter credentials", true);
    new LoginPage(getDriver())
        .login("admin", "secret");

    StepLogger.step("Assert dashboard");
    Assert.assertTrue(
        new DashboardPage(getDriver()).isLoaded()
    );
  }
}
1Dependency to add
20+Built-in features
4CI platforms auto-detected
0Boilerplate required

Everything you need,
nothing you don't

One dependency. Zero required config. Full-stack automation power, ready the moment you extend BaseTest.

โšก

Zero Boilerplate

Extend BaseTest. Write @Test methods. Driver lifecycle, waits, retry, reports, and screenshots are handled automatically โ€” no setup code required.

๐Ÿ“„

YAML Configuration

One selenium-boot.yml controls browser, parallel threads, timeouts, retry, CI thresholds, tracing, AI analysis, and more. Switch environments with a profile flag.

๐Ÿ”

Smart Retry + Flakiness Radar

Auto-retry flaky tests with @Retryable or globally. After each run, Flakiness Prediction ranks HIGH / WATCH / STABLE tests in the report dashboard.

๐Ÿ“‹

Page Object Toolkit

BasePage covers click, type, getText, dropdowns, alerts, hover, scroll, iFrame helpers, Shadow DOM, and file upload โ€” all wait-backed. SmartLocator tries multiple strategies.

๐Ÿ”—

Fluent Locator API

$(".row").filter(".active").nth(0).click() โ€” Playwright-style chainable locators. assertThat(By.id("title")).hasText("Welcome") auto-retries until the condition is met.

๐ŸŒ

Network & Storage Mocking

Stub API responses via CDP: networkMock().stub("**/api/users").returnJson(...). Read/write localStorage, sessionStorage, cookies, geolocation, and clipboard in tests.

๐Ÿ“ธ

Visual Regression + Mobile

assertScreenshot("homepage") compares pixel-by-pixel against a baseline. emulateDevice("iPhone 14") applies full CDP viewport + UA emulation. 6 built-in device profiles.

๐Ÿชœ

Step Logging + Trace Viewer

StepLogger.step() captures named steps with screenshots. On failure a self-contained dark-themed trace HTML is generated โ€” step timeline, final screenshot, and stack trace.

๐Ÿ“Š

Advanced HTML Report

Tabbed dashboard: pass-rate gauge, donut chart, retry badges, expandable error rows, AI analysis panel, Flakiness Radar, "View Trace" links, filter bar, search, dark mode.

๐Ÿฉบ

Self-Healing Locators

When a locator times out, the framework automatically tries fallback strategies โ€” id, name, text, class, data-testid โ€” and continues. Healed locators are flagged in the report.

๐Ÿง 

AI Failure Analysis

Set ai.failureAnalysis: true and point to your Claude API key. On every failure, Claude Haiku analyses the error, steps, URL, and title โ€” and embeds a plain-English root-cause + fix.

๐Ÿ”

@PreCondition

Eliminate @BeforeMethod login boilerplate. Declare @PreCondition("loginAsAdmin") โ€” the framework runs setup once, caches cookies + localStorage, and restores the session for every test.

๐Ÿ“ง

Email Verification

mailbox().waitForEmail(to("user@test.com")) polls until a matching email arrives. Supports Mailhog, Mailtrap, Outlook (Graph API), and IMAP. extractLink() finds anchors by text.

๐Ÿ•

Clock Mocking

clock().set("2030-01-01T00:00:00Z") freezes the browser Date object. Test subscription expiry banners, trial periods, and countdown timers without touching the database.

โ˜๏ธ

Cloud Execution

Switch to BrowserStack or Sauce Labs by changing one line. execution.mode: browserstack โ€” no test-code changes. Session video and logs linked in the HTML report.

๐Ÿ”Œ

Extensible via SPI

Java ServiceLoader plugin system. Register custom driver providers, report adapters (Allure, Slack, Teams), and lifecycle hooks โ€” zero framework code changes needed.

๐Ÿค–

AI Test Authoring (MCP)

seleniumboot-mcp lets Claude or GitHub Copilot control a real browser, record the session, and generate Selenium Boot test code in one prompt. pip install seleniumboot-mcp

Up and running
in 3 minutes

Add the dependency, create a YAML config, extend BaseTest โ€” your first test runs with full reporting, retry, and smart waits already configured.

Read the guide โ†’
selenium-boot.yml
browser:
  name: chrome
  headless: false

execution:
  baseUrl: https://your-app.com

retry:
  enabled: true
  maxAttempts: 2

email:
  provider: mailhog

clock:
  injectHeader: false