or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

domains.mdevents.mdindex.mdjavascript.mdlogging.mdnetwork.mdtarget.md
tile.json

tessl/maven-org-seleniumhq-selenium--selenium-devtools-v129

Chrome DevTools Protocol version 129 bindings for Selenium WebDriver.

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/org.seleniumhq.selenium/selenium-devtools-v129@4.27.x

To install, run

npx @tessl/cli install tessl/maven-org-seleniumhq-selenium--selenium-devtools-v129@4.27.0

index.mddocs/

Selenium DevTools v129

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.

Package Information

  • Package Name: org.seleniumhq.selenium:selenium-devtools-v129
  • Package Type: Maven
  • Language: Java
  • Installation:
    <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-devtools-v129</artifactId>
      <version>4.27.0</version>
    </dependency>

Core Imports

import org.openqa.selenium.devtools.v129.v129Domains;
import org.openqa.selenium.devtools.v129.v129CdpInfo;
import org.openqa.selenium.devtools.DevTools;

Basic Usage

import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.devtools.DevTools;
import org.openqa.selenium.devtools.v129.v129Domains;

// Create Chrome driver and get DevTools instance
ChromeDriver driver = new ChromeDriver();
DevTools devTools = driver.getDevTools();
devTools.createSession();

// Create v129 domains instance for accessing all capabilities
v129Domains domains = new v129Domains(devTools);

// Use domain-specific functionality
devTools.send(domains.log().enable());

// Set up network interception
domains.network().prepareToInterceptTraffic();

// Listen for console events
domains.events().addConsoleListener(event -> {
    System.out.println("Console: " + event.getType() + " - " + event.getMessages());
});

Architecture

Selenium DevTools v129 is built around the Chrome DevTools Protocol architecture:

  • Service Discovery: v129CdpInfo provides version identification for automatic service binding
  • Domain Factory: v129Domains creates and manages all domain-specific implementations
  • Protocol Domains: Each domain (Network, Events, Javascript, Log, Target) provides specialized capabilities
  • Type Safety: Full Java type safety with protocol-generated classes and interfaces
  • DevTools Integration: Direct integration with Selenium's DevTools infrastructure

Capabilities

DevTools Domains Factory

Central factory providing access to all v129 DevTools protocol domains.

public class v129Domains implements Domains {
    public v129Domains(DevTools devtools);
    public Events<?, ?> events();
    public Javascript<?, ?> javascript();
    public Network<?, ?> network();
    public Target target();
    public Log log();
}

DevTools Domains

Network Operations

Network domain providing request/response interception, authentication handling, and traffic monitoring.

public class v129Network extends Network<AuthRequired, RequestPaused> {
    public v129Network(DevTools devTools);
    public Event<RequestPaused> requestPausedEvent();
    public Either<HttpRequest, HttpResponse> createSeMessages(RequestPaused pausedReq);
}

Network Operations

Event Handling

Events domain for capturing console messages and JavaScript exceptions from the browser.

public class v129Events extends Events<ConsoleAPICalled, ExceptionThrown> {
    public v129Events(DevTools devtools);
}

Event Handling

JavaScript Execution

JavaScript domain providing script injection, binding management, and code execution capabilities.

public class v129Javascript extends Javascript<ScriptIdentifier, BindingCalled> {
    public v129Javascript(DevTools devtools);
}

JavaScript Execution

Logging

Log domain for browser log management and console message capture.

public class v129Log implements org.openqa.selenium.devtools.idealized.log.Log {
    public Command<Void> enable();
    public Command<Void> clear();
    public Event<LogEntry> entryAdded();
}

Logging

Target Management

Target domain for managing browser tabs, contexts, and debugging sessions.

public class v129Target implements org.openqa.selenium.devtools.idealized.target.Target {
    public Command<List<TargetInfo>> getTargets();
    public Command<SessionID> attachToTarget(TargetID targetId);
    public Command<Void> detachFromTarget(Optional<SessionID> sessionId, Optional<TargetID> targetId);
}

Target Management

Types

Core DevTools Types

// From Selenium DevTools core
import org.openqa.selenium.devtools.DevTools;
import org.openqa.selenium.devtools.Command;
import org.openqa.selenium.devtools.Event;

// Protocol-specific types
import org.openqa.selenium.devtools.v129.runtime.model.ConsoleAPICalled;
import org.openqa.selenium.devtools.v129.runtime.model.ExceptionThrown;
import org.openqa.selenium.devtools.v129.fetch.model.AuthRequired;
import org.openqa.selenium.devtools.v129.fetch.model.RequestPaused;

Service Provider

@AutoService(CdpInfo.class)
public class v129CdpInfo extends CdpInfo {
    public v129CdpInfo();
}