CtrlK
BlogDocsLog inGet started
Tessl Logo

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

Chrome DevTools Protocol version 129 bindings for Selenium WebDriver.

Pending
Overview
Eval results
Files

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();
}

Install with Tessl CLI

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