0
# Selenium DevTools v129
1
2
Selenium DevTools v129 provides Java bindings for Chrome DevTools Protocol version 129, enabling advanced browser automation capabilities beyond standard WebDriver functionality. It includes domain-specific APIs for network monitoring and manipulation, JavaScript execution and debugging, console log capture, and target management across multiple browser contexts.
3
4
## Package Information
5
6
- **Package Name**: org.seleniumhq.selenium:selenium-devtools-v129
7
- **Package Type**: Maven
8
- **Language**: Java
9
- **Installation**:
10
```xml
11
<dependency>
12
<groupId>org.seleniumhq.selenium</groupId>
13
<artifactId>selenium-devtools-v129</artifactId>
14
<version>4.27.0</version>
15
</dependency>
16
```
17
18
## Core Imports
19
20
```java
21
import org.openqa.selenium.devtools.v129.v129Domains;
22
import org.openqa.selenium.devtools.v129.v129CdpInfo;
23
import org.openqa.selenium.devtools.DevTools;
24
```
25
26
## Basic Usage
27
28
```java
29
import org.openqa.selenium.chrome.ChromeDriver;
30
import org.openqa.selenium.devtools.DevTools;
31
import org.openqa.selenium.devtools.v129.v129Domains;
32
33
// Create Chrome driver and get DevTools instance
34
ChromeDriver driver = new ChromeDriver();
35
DevTools devTools = driver.getDevTools();
36
devTools.createSession();
37
38
// Create v129 domains instance for accessing all capabilities
39
v129Domains domains = new v129Domains(devTools);
40
41
// Use domain-specific functionality
42
devTools.send(domains.log().enable());
43
44
// Set up network interception
45
domains.network().prepareToInterceptTraffic();
46
47
// Listen for console events
48
domains.events().addConsoleListener(event -> {
49
System.out.println("Console: " + event.getType() + " - " + event.getMessages());
50
});
51
```
52
53
## Architecture
54
55
Selenium DevTools v129 is built around the Chrome DevTools Protocol architecture:
56
57
- **Service Discovery**: `v129CdpInfo` provides version identification for automatic service binding
58
- **Domain Factory**: `v129Domains` creates and manages all domain-specific implementations
59
- **Protocol Domains**: Each domain (Network, Events, Javascript, Log, Target) provides specialized capabilities
60
- **Type Safety**: Full Java type safety with protocol-generated classes and interfaces
61
- **DevTools Integration**: Direct integration with Selenium's DevTools infrastructure
62
63
## Capabilities
64
65
### DevTools Domains Factory
66
67
Central factory providing access to all v129 DevTools protocol domains.
68
69
```java { .api }
70
public class v129Domains implements Domains {
71
public v129Domains(DevTools devtools);
72
public Events<?, ?> events();
73
public Javascript<?, ?> javascript();
74
public Network<?, ?> network();
75
public Target target();
76
public Log log();
77
}
78
```
79
80
[DevTools Domains](./domains.md)
81
82
### Network Operations
83
84
Network domain providing request/response interception, authentication handling, and traffic monitoring.
85
86
```java { .api }
87
public class v129Network extends Network<AuthRequired, RequestPaused> {
88
public v129Network(DevTools devTools);
89
public Event<RequestPaused> requestPausedEvent();
90
public Either<HttpRequest, HttpResponse> createSeMessages(RequestPaused pausedReq);
91
}
92
```
93
94
[Network Operations](./network.md)
95
96
### Event Handling
97
98
Events domain for capturing console messages and JavaScript exceptions from the browser.
99
100
```java { .api }
101
public class v129Events extends Events<ConsoleAPICalled, ExceptionThrown> {
102
public v129Events(DevTools devtools);
103
}
104
```
105
106
[Event Handling](./events.md)
107
108
### JavaScript Execution
109
110
JavaScript domain providing script injection, binding management, and code execution capabilities.
111
112
```java { .api }
113
public class v129Javascript extends Javascript<ScriptIdentifier, BindingCalled> {
114
public v129Javascript(DevTools devtools);
115
}
116
```
117
118
[JavaScript Execution](./javascript.md)
119
120
### Logging
121
122
Log domain for browser log management and console message capture.
123
124
```java { .api }
125
public class v129Log implements org.openqa.selenium.devtools.idealized.log.Log {
126
public Command<Void> enable();
127
public Command<Void> clear();
128
public Event<LogEntry> entryAdded();
129
}
130
```
131
132
[Logging](./logging.md)
133
134
### Target Management
135
136
Target domain for managing browser tabs, contexts, and debugging sessions.
137
138
```java { .api }
139
public class v129Target implements org.openqa.selenium.devtools.idealized.target.Target {
140
public Command<List<TargetInfo>> getTargets();
141
public Command<SessionID> attachToTarget(TargetID targetId);
142
public Command<Void> detachFromTarget(Optional<SessionID> sessionId, Optional<TargetID> targetId);
143
}
144
```
145
146
[Target Management](./target.md)
147
148
## Types
149
150
### Core DevTools Types
151
152
```java { .api }
153
// From Selenium DevTools core
154
import org.openqa.selenium.devtools.DevTools;
155
import org.openqa.selenium.devtools.Command;
156
import org.openqa.selenium.devtools.Event;
157
158
// Protocol-specific types
159
import org.openqa.selenium.devtools.v129.runtime.model.ConsoleAPICalled;
160
import org.openqa.selenium.devtools.v129.runtime.model.ExceptionThrown;
161
import org.openqa.selenium.devtools.v129.fetch.model.AuthRequired;
162
import org.openqa.selenium.devtools.v129.fetch.model.RequestPaused;
163
```
164
165
### Service Provider
166
167
```java { .api }
168
@AutoService(CdpInfo.class)
169
public class v129CdpInfo extends CdpInfo {
170
public v129CdpInfo();
171
}
172
```