or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

events.mdindex.mdjavascript.mdlogging.mdnetwork.mdtarget.md
tile.json

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

Chrome DevTools Protocol bindings for Selenium WebDriver version 111

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

To install, run

npx @tessl/cli install tessl/maven-org-seleniumhq-selenium--selenium-devtools-v111@4.9.0

index.mddocs/

Selenium DevTools v111

Chrome DevTools Protocol (CDP) bindings specifically for Chrome version 111, enabling Java applications to interact with Chrome's debugging and development tools through a programmatic interface. This package provides comprehensive access to CDP domains for network monitoring, JavaScript execution, event handling, logging, and target management.

Package Information

  • Package Name: selenium-devtools-v111
  • Package Type: Maven
  • Language: Java
  • Installation: Add to Maven dependencies:
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-devtools-v111</artifactId>
    <version>4.9.1</version>
</dependency>

Core Imports

import org.openqa.selenium.devtools.v111.v111CdpInfo;
import org.openqa.selenium.devtools.v111.v111Domains;

Access to domain implementations:

import org.openqa.selenium.devtools.v111.v111Events;
import org.openqa.selenium.devtools.v111.v111Javascript;
import org.openqa.selenium.devtools.v111.v111Network;
import org.openqa.selenium.devtools.v111.v111Log;
import org.openqa.selenium.devtools.v111.v111Target;

Basic Usage

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.devtools.DevTools;
import org.openqa.selenium.devtools.v111.v111Domains;

// Create Chrome driver with DevTools capabilities
ChromeDriver driver = new ChromeDriver();
DevTools devTools = driver.getDevTools();
devTools.createSession();

// Create domains container
v111Domains domains = new v111Domains(devTools);

// Enable basic domains
devTools.send(domains.log().enable());
devTools.send(domains.events().enableRuntime());
devTools.send(domains.javascript().enableRuntime());
devTools.send(domains.target().setAutoAttach());

// Enable network monitoring
devTools.send(domains.network().enableFetchForAllPatterns());

// Set up basic listeners
devTools.addListener(domains.log().entryAdded(), logEntry -> 
    System.out.println("Log: " + logEntry.getEntry().getMessage()));

devTools.addListener(domains.events().consoleEvent(), consoleEvent -> 
    System.out.println("Console: " + consoleEvent.getType()));

// Cleanup
devTools.close();
driver.quit();

Architecture

The package follows the Selenium DevTools idealized interface pattern:

  • v111CdpInfo: AutoService-registered entry point providing CDP version information
  • v111Domains: Main container providing access to all domain implementations
  • Domain Classes: Specialized implementations for each CDP domain (Network, Events, JavaScript, Log, Target)
  • Generated CDP Classes: Protocol-specific classes generated from Chrome DevTools Protocol specifications

Capabilities

Entry Point and Domain Management

Core classes for initializing and managing CDP version 111 domains, providing the foundation for all Chrome DevTools Protocol interactions.

public class v111CdpInfo extends CdpInfo {
    public v111CdpInfo();
}

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

Network Monitoring and Control

Network domain implementation for HTTP request/response interception, authentication handling, and caching control. Provides comprehensive network monitoring capabilities for automated testing and debugging.

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

Network Domain

Event Handling and Runtime

Event domain implementation for console events, JavaScript exceptions, and runtime event management. Enables monitoring of browser console output and JavaScript execution errors.

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

Events Domain

JavaScript Management

JavaScript domain implementation for script injection, binding management, and runtime code evaluation. Provides capabilities for executing JavaScript code and managing runtime bindings.

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

JavaScript Domain

Logging

Log domain implementation for browser log capture and management. Provides access to browser console logs with level filtering and timestamp information.

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

Logging Domain

Target Management

Target domain implementation for browser target and session management. Enables control over browser tabs, windows, and debugging sessions.

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

Target Domain

Types

Core DevTools Types

// DevTools communication types
interface Command<T> // Represents CDP commands returning type T
interface Event<T>   // Represents CDP events of type T
class DevTools       // Main DevTools communication interface

// Generic response types
class Either<L, R>   // Represents value that can be left (L) or right (R) type

Domain-Specific Types

// Network domain types
class AuthRequired          // Authentication challenge event
class RequestPaused         // Request interception event
class UsernameAndPassword   // Authentication credentials
class HttpRequest           // HTTP request representation
class HttpResponse          // HTTP response representation

// JavaScript domain types
class ScriptIdentifier      // Identifier for injected scripts
class BindingCalled        // JavaScript binding invocation event

// Events domain types
class ConsoleAPICalled      // Console API invocation event
class ExceptionThrown       // JavaScript exception event
class ConsoleEvent          // Processed console event
class JavascriptException   // JavaScript exception wrapper

// Target domain types
class TargetID             // Unique target identifier
class SessionID            // DevTools session identifier
class TargetInfo           // Target information container
class BrowserContextID     // Browser context identifier

// Log domain types
class LogEntry             // Browser log entry
class Level                // Log level enumeration
class Timestamp            // CDP timestamp representation