Selenium BOM for managing consistent versions of Selenium dependencies across projects
npx @tessl/cli install tessl/maven-org-seleniumhq-selenium--selenium-bom@4.33.0Selenium BOM (Bill of Materials) is a Maven POM artifact that provides centralized dependency management for the Selenium ecosystem. It enables consistent versioning across all Selenium artifacts in multi-module projects, eliminating version conflicts and simplifying dependency management for browser automation projects.
Import the BOM in your Maven project's dependencyManagement section:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-bom</artifactId>
<version>4.33.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>After importing the BOM, declare Selenium dependencies without version numbers:
<dependencies>
<!-- WebDriver API and Remote Driver -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
</dependency>
<!-- Browser-specific drivers -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-firefox-driver</artifactId>
</dependency>
<!-- Support utilities -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-support</artifactId>
</dependency>
</dependencies>The Selenium BOM manages dependencies for the complete Selenium ecosystem:
This centralized approach ensures that all Selenium components work together without version conflicts.
The BOM provides version coordination for all Selenium artifacts, ensuring compatibility across the ecosystem.
<!-- Main Selenium BOM - manages all Selenium artifacts -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-bom</artifactId>
<version>4.33.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- External Dependencies BOM - manages third-party dependencies -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-dependencies-bom</artifactId>
<version>4.33.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>Primary WebDriver components for browser automation.
<!-- Complete Selenium Library (includes all drivers) -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
</dependency>
<!-- Core WebDriver API -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
</dependency>
<!-- Remote WebDriver Implementation -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
</dependency>
<!-- WebDriver Support Utilities -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-support</artifactId>
</dependency>Browser-specific WebDriver implementations for automated testing.
<!-- Chrome/Chromium Driver -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
</dependency>
<!-- Base Chromium Driver -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chromium-driver</artifactId>
</dependency>
<!-- Firefox Driver -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-firefox-driver</artifactId>
</dependency>
<!-- Microsoft Edge Driver -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-edge-driver</artifactId>
</dependency>
<!-- Safari Driver -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-safari-driver</artifactId>
</dependency>
<!-- Internet Explorer Driver -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-ie-driver</artifactId>
</dependency>Selenium Grid components for distributed testing environments.
<!-- Grid Server Components -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-grid</artifactId>
</dependency>
<!-- JDBC Session Map for Grid -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-session-map-jdbc</artifactId>
</dependency>
<!-- Redis Session Map for Grid -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-session-map-redis</artifactId>
</dependency>Chrome DevTools Protocol (CDP) artifacts for browser automation and debugging.
<!-- Chrome DevTools Protocol v135 -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-devtools-v135</artifactId>
</dependency>
<!-- Chrome DevTools Protocol v136 -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-devtools-v136</artifactId>
</dependency>
<!-- Chrome DevTools Protocol v137 -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-devtools-v137</artifactId>
</dependency>Additional Selenium utilities and supporting components.
<!-- JSON Serialization Utilities -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-json</artifactId>
</dependency>
<!-- Driver Management Utilities -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-manager</artifactId>
</dependency>
<!-- HTTP Client Utilities -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-http</artifactId>
</dependency>
<!-- Operating System Utilities -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-os</artifactId>
</dependency>The BOM manages versions for the following Selenium artifacts:
| Artifact ID | Description |
|---|---|
selenium-java | Complete Selenium WebDriver library (includes all drivers and support) |
selenium-api | Core WebDriver interfaces and abstractions |
selenium-remote-driver | Remote WebDriver implementation with BiDi and DevTools |
selenium-support | WebDriver support classes (PageFactory, Select, etc.) |
selenium-chrome-driver | Chrome/Chromium WebDriver implementation |
selenium-chromium-driver | Base Chromium browser driver functionality |
selenium-firefox-driver | Firefox WebDriver implementation |
selenium-edge-driver | Microsoft Edge WebDriver implementation |
selenium-ie-driver | Internet Explorer WebDriver implementation |
selenium-safari-driver | Safari WebDriver implementation |
selenium-grid | Selenium Grid server components |
selenium-session-map-jdbc | JDBC-based session map for Grid |
selenium-session-map-redis | Redis-based session map for Grid |
selenium-json | JSON serialization/deserialization utilities |
selenium-manager | Driver management utilities |
selenium-http | HTTP client utilities for WebDriver communication |
selenium-os | Operating system utilities and platform-specific functionality |
selenium-devtools-v135 | Chrome DevTools Protocol version 135 implementation |
selenium-devtools-v136 | Chrome DevTools Protocol version 136 implementation |
selenium-devtools-v137 | Chrome DevTools Protocol version 137 implementation |
selenium-dependencies-bom | BOM for managing external third-party dependencies |
DevTools Versioning: The Chrome DevTools Protocol artifacts follow Chrome's major version numbers. These artifacts enable advanced browser automation features like network monitoring, performance profiling, and console access. The BOM includes support for the three most recent stable Chrome versions.
A complete Maven project using the Selenium BOM:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>selenium-test-project</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencyManagement>
<dependencies>
<!-- Import Selenium BOM -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-bom</artifactId>
<version>4.33.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Core WebDriver -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
</dependency>
<!-- Browser drivers -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-firefox-driver</artifactId>
</dependency>
<!-- Support utilities -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-support</artifactId>
</dependency>
<!-- Test framework -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.9.2</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>