Selenium BOM for managing consistent versions of Selenium dependencies across projects
npx @tessl/cli install tessl/maven-org-seleniumhq-selenium--selenium-bom@4.33.00
# Selenium BOM
1
2
Selenium 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.
3
4
## Package Information
5
6
- **Package Name**: selenium-bom
7
- **Package Type**: maven
8
- **Group ID**: org.seleniumhq.selenium
9
- **Artifact ID**: selenium-bom
10
- **Language**: Java
11
- **Installation**: Add to Maven dependencyManagement section (see usage below)
12
13
## Core Usage
14
15
Import the BOM in your Maven project's dependencyManagement section:
16
17
```xml { .api }
18
<dependencyManagement>
19
<dependencies>
20
<dependency>
21
<groupId>org.seleniumhq.selenium</groupId>
22
<artifactId>selenium-bom</artifactId>
23
<version>4.33.0</version>
24
<type>pom</type>
25
<scope>import</scope>
26
</dependency>
27
</dependencies>
28
</dependencyManagement>
29
```
30
31
## Basic Usage
32
33
After importing the BOM, declare Selenium dependencies without version numbers:
34
35
```xml { .api }
36
<dependencies>
37
<!-- WebDriver API and Remote Driver -->
38
<dependency>
39
<groupId>org.seleniumhq.selenium</groupId>
40
<artifactId>selenium-remote-driver</artifactId>
41
</dependency>
42
43
<!-- Browser-specific drivers -->
44
<dependency>
45
<groupId>org.seleniumhq.selenium</groupId>
46
<artifactId>selenium-chrome-driver</artifactId>
47
</dependency>
48
49
<dependency>
50
<groupId>org.seleniumhq.selenium</groupId>
51
<artifactId>selenium-firefox-driver</artifactId>
52
</dependency>
53
54
<!-- Support utilities -->
55
<dependency>
56
<groupId>org.seleniumhq.selenium</groupId>
57
<artifactId>selenium-support</artifactId>
58
</dependency>
59
</dependencies>
60
```
61
62
## Architecture
63
64
The Selenium BOM manages dependencies for the complete Selenium ecosystem:
65
66
- **Core API**: Base WebDriver interfaces and implementations
67
- **Browser Drivers**: Chrome, Firefox, Edge, Safari, Internet Explorer drivers
68
- **Grid Components**: Distributed testing infrastructure with session management
69
- **Support Libraries**: Page Object Model utilities, Select helpers, and more
70
- **DevTools Support**: Chrome DevTools Protocol integrations
71
72
This centralized approach ensures that all Selenium components work together without version conflicts.
73
74
## Capabilities
75
76
### Dependency Management
77
78
The BOM provides version coordination for all Selenium artifacts, ensuring compatibility across the ecosystem.
79
80
```xml { .api }
81
<!-- Main Selenium BOM - manages all Selenium artifacts -->
82
<dependencyManagement>
83
<dependencies>
84
<dependency>
85
<groupId>org.seleniumhq.selenium</groupId>
86
<artifactId>selenium-bom</artifactId>
87
<version>4.33.0</version>
88
<type>pom</type>
89
<scope>import</scope>
90
</dependency>
91
92
<!-- External Dependencies BOM - manages third-party dependencies -->
93
<dependency>
94
<groupId>org.seleniumhq.selenium</groupId>
95
<artifactId>selenium-dependencies-bom</artifactId>
96
<version>4.33.0</version>
97
<type>pom</type>
98
<scope>import</scope>
99
</dependency>
100
</dependencies>
101
</dependencyManagement>
102
```
103
104
### Core WebDriver Dependencies
105
106
Primary WebDriver components for browser automation.
107
108
```xml { .api }
109
<!-- Complete Selenium Library (includes all drivers) -->
110
<dependency>
111
<groupId>org.seleniumhq.selenium</groupId>
112
<artifactId>selenium-java</artifactId>
113
</dependency>
114
115
<!-- Core WebDriver API -->
116
<dependency>
117
<groupId>org.seleniumhq.selenium</groupId>
118
<artifactId>selenium-api</artifactId>
119
</dependency>
120
121
<!-- Remote WebDriver Implementation -->
122
<dependency>
123
<groupId>org.seleniumhq.selenium</groupId>
124
<artifactId>selenium-remote-driver</artifactId>
125
</dependency>
126
127
<!-- WebDriver Support Utilities -->
128
<dependency>
129
<groupId>org.seleniumhq.selenium</groupId>
130
<artifactId>selenium-support</artifactId>
131
</dependency>
132
```
133
134
### Browser Driver Dependencies
135
136
Browser-specific WebDriver implementations for automated testing.
137
138
```xml { .api }
139
<!-- Chrome/Chromium Driver -->
140
<dependency>
141
<groupId>org.seleniumhq.selenium</groupId>
142
<artifactId>selenium-chrome-driver</artifactId>
143
</dependency>
144
145
<!-- Base Chromium Driver -->
146
<dependency>
147
<groupId>org.seleniumhq.selenium</groupId>
148
<artifactId>selenium-chromium-driver</artifactId>
149
</dependency>
150
151
<!-- Firefox Driver -->
152
<dependency>
153
<groupId>org.seleniumhq.selenium</groupId>
154
<artifactId>selenium-firefox-driver</artifactId>
155
</dependency>
156
157
<!-- Microsoft Edge Driver -->
158
<dependency>
159
<groupId>org.seleniumhq.selenium</groupId>
160
<artifactId>selenium-edge-driver</artifactId>
161
</dependency>
162
163
<!-- Safari Driver -->
164
<dependency>
165
<groupId>org.seleniumhq.selenium</groupId>
166
<artifactId>selenium-safari-driver</artifactId>
167
</dependency>
168
169
<!-- Internet Explorer Driver -->
170
<dependency>
171
<groupId>org.seleniumhq.selenium</groupId>
172
<artifactId>selenium-ie-driver</artifactId>
173
</dependency>
174
```
175
176
### Grid Infrastructure Dependencies
177
178
Selenium Grid components for distributed testing environments.
179
180
```xml { .api }
181
<!-- Grid Server Components -->
182
<dependency>
183
<groupId>org.seleniumhq.selenium</groupId>
184
<artifactId>selenium-grid</artifactId>
185
</dependency>
186
187
<!-- JDBC Session Map for Grid -->
188
<dependency>
189
<groupId>org.seleniumhq.selenium</groupId>
190
<artifactId>selenium-session-map-jdbc</artifactId>
191
</dependency>
192
193
<!-- Redis Session Map for Grid -->
194
<dependency>
195
<groupId>org.seleniumhq.selenium</groupId>
196
<artifactId>selenium-session-map-redis</artifactId>
197
</dependency>
198
```
199
200
### DevTools Dependencies
201
202
Chrome DevTools Protocol (CDP) artifacts for browser automation and debugging.
203
204
```xml { .api }
205
<!-- Chrome DevTools Protocol v135 -->
206
<dependency>
207
<groupId>org.seleniumhq.selenium</groupId>
208
<artifactId>selenium-devtools-v135</artifactId>
209
</dependency>
210
211
<!-- Chrome DevTools Protocol v136 -->
212
<dependency>
213
<groupId>org.seleniumhq.selenium</groupId>
214
<artifactId>selenium-devtools-v136</artifactId>
215
</dependency>
216
217
<!-- Chrome DevTools Protocol v137 -->
218
<dependency>
219
<groupId>org.seleniumhq.selenium</groupId>
220
<artifactId>selenium-devtools-v137</artifactId>
221
</dependency>
222
```
223
224
### Utility Dependencies
225
226
Additional Selenium utilities and supporting components.
227
228
```xml { .api }
229
<!-- JSON Serialization Utilities -->
230
<dependency>
231
<groupId>org.seleniumhq.selenium</groupId>
232
<artifactId>selenium-json</artifactId>
233
</dependency>
234
235
<!-- Driver Management Utilities -->
236
<dependency>
237
<groupId>org.seleniumhq.selenium</groupId>
238
<artifactId>selenium-manager</artifactId>
239
</dependency>
240
241
<!-- HTTP Client Utilities -->
242
<dependency>
243
<groupId>org.seleniumhq.selenium</groupId>
244
<artifactId>selenium-http</artifactId>
245
</dependency>
246
247
<!-- Operating System Utilities -->
248
<dependency>
249
<groupId>org.seleniumhq.selenium</groupId>
250
<artifactId>selenium-os</artifactId>
251
</dependency>
252
```
253
254
## Managed Artifacts
255
256
The BOM manages versions for the following Selenium artifacts:
257
258
| Artifact ID | Description |
259
|-------------|-------------|
260
| `selenium-java` | Complete Selenium WebDriver library (includes all drivers and support) |
261
| `selenium-api` | Core WebDriver interfaces and abstractions |
262
| `selenium-remote-driver` | Remote WebDriver implementation with BiDi and DevTools |
263
| `selenium-support` | WebDriver support classes (PageFactory, Select, etc.) |
264
| `selenium-chrome-driver` | Chrome/Chromium WebDriver implementation |
265
| `selenium-chromium-driver` | Base Chromium browser driver functionality |
266
| `selenium-firefox-driver` | Firefox WebDriver implementation |
267
| `selenium-edge-driver` | Microsoft Edge WebDriver implementation |
268
| `selenium-ie-driver` | Internet Explorer WebDriver implementation |
269
| `selenium-safari-driver` | Safari WebDriver implementation |
270
| `selenium-grid` | Selenium Grid server components |
271
| `selenium-session-map-jdbc` | JDBC-based session map for Grid |
272
| `selenium-session-map-redis` | Redis-based session map for Grid |
273
| `selenium-json` | JSON serialization/deserialization utilities |
274
| `selenium-manager` | Driver management utilities |
275
| `selenium-http` | HTTP client utilities for WebDriver communication |
276
| `selenium-os` | Operating system utilities and platform-specific functionality |
277
| `selenium-devtools-v135` | Chrome DevTools Protocol version 135 implementation |
278
| `selenium-devtools-v136` | Chrome DevTools Protocol version 136 implementation |
279
| `selenium-devtools-v137` | Chrome DevTools Protocol version 137 implementation |
280
| `selenium-dependencies-bom` | BOM for managing external third-party dependencies |
281
282
**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.
283
284
## Version Information
285
286
- **Current Version**: 4.33.0
287
- **License**: Apache License 2.0
288
- **Homepage**: https://selenium.dev/
289
- **Source Code**: https://github.com/SeleniumHQ/selenium/
290
291
## Complete Example
292
293
A complete Maven project using the Selenium BOM:
294
295
```xml
296
<project>
297
<modelVersion>4.0.0</modelVersion>
298
299
<groupId>com.example</groupId>
300
<artifactId>selenium-test-project</artifactId>
301
<version>1.0.0</version>
302
<packaging>jar</packaging>
303
304
<properties>
305
<maven.compiler.source>11</maven.compiler.source>
306
<maven.compiler.target>11</maven.compiler.target>
307
</properties>
308
309
<dependencyManagement>
310
<dependencies>
311
<!-- Import Selenium BOM -->
312
<dependency>
313
<groupId>org.seleniumhq.selenium</groupId>
314
<artifactId>selenium-bom</artifactId>
315
<version>4.33.0</version>
316
<type>pom</type>
317
<scope>import</scope>
318
</dependency>
319
</dependencies>
320
</dependencyManagement>
321
322
<dependencies>
323
<!-- Core WebDriver -->
324
<dependency>
325
<groupId>org.seleniumhq.selenium</groupId>
326
<artifactId>selenium-remote-driver</artifactId>
327
</dependency>
328
329
<!-- Browser drivers -->
330
<dependency>
331
<groupId>org.seleniumhq.selenium</groupId>
332
<artifactId>selenium-chrome-driver</artifactId>
333
</dependency>
334
335
<dependency>
336
<groupId>org.seleniumhq.selenium</groupId>
337
<artifactId>selenium-firefox-driver</artifactId>
338
</dependency>
339
340
<!-- Support utilities -->
341
<dependency>
342
<groupId>org.seleniumhq.selenium</groupId>
343
<artifactId>selenium-support</artifactId>
344
</dependency>
345
346
<!-- Test framework -->
347
<dependency>
348
<groupId>org.junit.jupiter</groupId>
349
<artifactId>junit-jupiter</artifactId>
350
<version>5.9.2</version>
351
<scope>test</scope>
352
</dependency>
353
</dependencies>
354
</project>
355
```