Why Selenium Boot?
Developers adopt a philosophy before they adopt an API. This page is the philosophy.
Selenium Boot is the Spring Boot of Selenium — zero setup, smarter defaults, Playwright-inspired APIs, and enterprise features, without hiding Selenium.
Selenium is powerful and everywhere, but it's deliberately low-level: it gives you a WebDriver and gets out of the way. Everything else — driver lifecycle, waits, retries, reporting, CI wiring — is left to you. Every team ends up rebuilding the same scaffolding. Selenium Boot is that scaffolding, done once, properly.
The idea in three layers
Selenium Boot is opinionated, but not a cage. The design is layered, not equal parts:
- Opinionated core (primary). Convention over configuration, zero boilerplate by default. Add one dependency, extend
BaseTest/BasePage, and the framework has already made the sensible decisions — driver lifecycle, waits, retries, reporting, CI wiring.selenium-boot.ymlis optional; sensible defaults cover you if you never write it. - Never hides Selenium (the constraint). Unlike heavier abstractions, Selenium Boot never takes the raw
WebDriveraway from you. When the conventions don't fit, drop straight toWebDriver/By/WebElement. Opinionated without being a cage. - Extensible toolkit (the escape hatch). An SPI/registry plugin system makes it modular for power users — custom drivers, report adapters, lifecycle hooks. Most users never touch it.
What you get for one dependency
Outcomes first — with the API that delivers them:
| Outcome | How |
|---|---|
Never write Thread.sleep() again | Auto-waiting locators + WaitEngine |
| Tests survive CSS refactors | Accessibility-first locators — getByRole, getByLabel, getByText |
| Flaky tests recover automatically | @Retryable + one config line — no IRetryAnalyzer wiring |
| See exactly why a test failed | Screenshot auto-captured on failure, embedded in the HTML report |
| No WebDriver binaries to manage | Selenium Manager resolves drivers automatically |
| Parallel-safe out of the box | ThreadLocal driver isolation — parallel execution |
| Extend it without forking it | Java SPI plugins for drivers, reports, hooks |
Who it's for
- Teams already invested in Selenium who want Playwright-style ergonomics without leaving the Selenium / Java / TestNG stack, their team's skills, or Selenium Grid.
- Teams maintaining a home-grown framework — a
BaseTest, aDriverFactory, a pile of wait utilities — who'd rather delete that plumbing than keep debugging it.
The two "why" questions those teams actually ask each have their own page:
- Why not plain Selenium? — what the boilerplate really costs
- Why not Playwright? — an honest comparison (we don't claim to replace it)
Next steps
- Getting Started — first test in 5 minutes
- BaseTest / BasePage — the base classes you extend
- Configuration Reference — the full
selenium-boot.yml