CheckOps
Selenide
Selenide is an MIT-licensed Java UI testing framework on top of Selenium WebDriver, with a concise fluent API, automatic waiting and built-in screenshots for stable browser tests.
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
Selenide is a framework for writing easy-to-read and easy-to-maintain automated UI tests in Java. It sits on top of Selenium WebDriver (version 4 and later) and replaces most of the boilerplate around it: starting and closing the browser, waiting for elements, taking screenshots on failure and writing assertions.
The API is built around the $ and $$ functions. $("#submit").click() finds and clicks an element, and $("#username").shouldHave(text("Hello, Johny!")) asserts on it. Every should condition waits until it becomes true or a timeout passes, which the project describes as doing ‘some magic for ajax-based applications’. In practice this removes most explicit waits and many of the flaky failures that come with them.
Because Selenide is a thin layer over WebDriver, it runs wherever Selenium runs: local browsers, Selenium Grid and cloud grids. The README points to plugins for Appium (mobile), Moon and Selenoid containers, Selenium Grid and video recording, and recent versions also document an MCP setup so AI coding agents can use Selenide.
Selenide works with JUnit 5, JUnit 4 and TestNG, and keeps WebDriver available for anything it does not wrap. On failure it automatically saves a screenshot and the page source, which makes CI failures much easier to diagnose than a bare stack trace.
In the quality loop, Selenide belongs at the end-to-end and functional stage for Java teams. It is especially popular with teams that already have Selenium knowledge and infrastructure but want shorter, more stable tests without moving to a different automation engine.
The source code is at selenide/selenide on GitHub under the MIT licence, with about 1,900 stars; the most recent commit was on 9 November 2026.
Features
- Concise
$API: Find, act and assert in one line with$,$$and fluent conditions such asshouldBe(visible). - Automatic waiting: Every condition retries until it passes or times out, so explicit waits are rarely needed.
- Browser lifecycle: Selenide opens, reuses and closes the browser for you; no WebDriver setup code in each test.
- Screenshots and page source: Saved automatically when a test fails, with links in the report.
- Collections:
$$handles lists of elements with conditions such asshouldHave(size(3))ortexts(...). - Selenium compatible: Built on Selenium WebDriver 4+, so it works with Grid and cloud providers and you can still reach the raw driver.
- Test framework support: Works with JUnit 5, JUnit 4 and TestNG.
- Plugins: Official plugins for Appium, Selenoid, Moon, Selenium Grid and video recording.
- Page objects: Supports classic page objects as well as simple ‘page component’ classes built from
$fields. - Configuration: Browser, timeout, base URL and reporting options via code, system properties or a properties file.
Pros
- Less flaky tests: Built-in waiting removes a common source of timing failures in Selenium suites.
- Gentle learning curve: Teams that know Selenium become productive quickly.
- Free to use: Open source under the MIT licence, so the core tool costs nothing to use.
- Actively maintained: The repository had commits as recent as 9 November 2026.
Cons
- Java only: Selenide is for JVM languages; other stacks need a different tool.
- Inherits WebDriver limits: Network interception and multi-tab handling are not as rich as in CDP-based tools like Playwright.
- Smaller community: About 1,900 GitHub stars, so fewer answers online than for plain Selenium.
- Global state: The static
$style is convenient but can be awkward in heavily parallel or multi-browser tests.
Usage and Links (Example)
Add Selenide to a Gradle or Maven project:
testImplementation 'com.codeborne:selenide:7.19.1'
A JUnit 5 test:
import static com.codeborne.selenide.Selenide.*;
import static com.codeborne.selenide.Condition.*;
class LoginTest {
@Test
void userCanLogIn() {
open("https://example.com/login");
$("#email").setValue("user@example.com");
$("#password").setValue(System.getenv("TEST_PASSWORD")).pressEnter();
$(".welcome").shouldHave(text("Welcome"));
}
}
Practical tips:
- Set
Configuration.baseUrlandConfiguration.timeoutonce in a base class instead of per test. - Use
Configuration.remoteto point at Selenium Grid or a cloud grid in CI. - Keep screenshots and page sources as CI artifacts; they are the fastest way to debug a red build.
- Prefer
shouldHave/shouldBeover manualThread.sleepor WebDriverWait calls.
Resources:
Pricing
Selenide is free and open source under the MIT licence.
Recommended for?
- Java teams already using Selenium who want shorter, more stable tests.
- Organisations with Selenium Grid infrastructure that want to keep it.
- QA engineers new to automation, thanks to the small, readable API.
- Not a fit for non-JVM stacks, or if you need deep network control that CDP-based tools offer.
Conclusion
Selenide is a mature, focused improvement on raw Selenium WebDriver for Java. Its automatic waiting, concise syntax and built-in diagnostics fix many day-to-day pains of browser testing.
If your team is committed to the JVM and WebDriver, it is one of the easiest ways to make an existing suite more reliable without changing infrastructure.
On CheckOps, Selenide is filed under the End-to-end & functional stage. Related tools listed here include Selenium, Serenity BDD, Playwright, Geb, Atata and WebDriverIO. Before choosing, compare them on licence, supported languages and platforms, hosting model, and how well each fits your existing CI pipeline. Facts on this page were checked against the official website, documentation and repository on 11 November 2026; statements the vendor makes about its own product are marked as vendor claims.
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with Selenide side by side.
SSeleniumA browser automation framework and ecosystem.Compare with Selenide
SSerenity BDDSerenity BDD is an Apache-2.0 Java library for writing automated acceptance tests with rich living-documentation reports, integrating with JUnit, Cucumber and Selenium and supporting the Screenplay pattern.Compare with Selenide
PPlaywrightPlaywright is a framework for Web Testing and Automation.Compare with Selenide
GGebGeb is an Apache-2.0 browser automation library for Groovy that combines WebDriver, jQuery-like content selection and page objects, now developed under the Apache Groovy project.Compare with Selenide
AAtataAtata is an Apache-2.0 C#/.NET test automation framework built around a fluent page object pattern on Selenium WebDriver, with built-in logging, triggers and reporting integrations.Compare with Selenide
WWebDriverIONext-gen browser and mobile automation test framework for Node.js.Compare with Selenide