or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

cli.mdconfiguration.mdextensions.mdindex.mdrest-api.md
tile.json

tessl/maven-org-seleniumhq-selenium--selenium-server

Selenium Grid server that enables distributed test execution across multiple browsers and operating systems.

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/org.seleniumhq.selenium/selenium-server@3.141.x

To install, run

npx @tessl/cli install tessl/maven-org-seleniumhq-selenium--selenium-server@3.141.0

index.mddocs/

Selenium Grid Server

Selenium Grid server enables distributed WebDriver test execution across multiple browsers and operating systems. It consists of a hub-and-node architecture where the hub acts as a central registry and router for WebDriver commands, while nodes provide actual browser instances. The server supports multiple browser types and can distribute test execution based on desired capabilities.

Package Information

  • Package Name: org.seleniumhq.selenium:selenium-server
  • Package Type: maven
  • Language: Java
  • Version: 3.141.59
  • Installation: <dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-server</artifactId><version>3.141.59</version></dependency> or standalone JAR download

Core Imports

Primary entry points for Selenium Grid server:

// Main Grid launcher (recommended for v3.141.59)
org.openqa.grid.selenium.GridLauncherV3

// Modern Grid interface (limited support in v3.141.59)  
org.openqa.selenium.grid.Main

// Standalone server entry point
org.openqa.selenium.remote.server.SeleniumServer

Basic Usage

Start the server using Java with the standalone JAR:

java -jar selenium-server-standalone-3.141.59.jar <command> [options]

Traditional Grid 3 syntax (recommended for v3.141.59):

# Start complete Grid in single process
java -jar selenium-server-standalone-3.141.59.jar -role standalone -port 4444

# Start distributed setup
java -jar selenium-server-standalone-3.141.59.jar -role hub -port 4444
java -jar selenium-server-standalone-3.141.59.jar -role node -hub http://hub-host:4444

Modern command syntax (limited support in v3.141.59):

java -jar selenium-server-standalone-3.141.59.jar standalone --port 4444
java -jar selenium-server-standalone-3.141.59.jar hub --port 4444
java -jar selenium-server-standalone-3.141.59.jar node --distributor http://hub-host:4444

Architecture

The Selenium Grid server is built around several key architectural components:

  • CLI Commands: Traditional Grid 3 role-based commands plus limited modern command support
  • HTTP REST API: WebDriver protocol endpoints plus Grid-specific management APIs
  • Configuration System: Multi-layered configuration with CLI args, environment variables, and system properties
  • Service Discovery: ServiceLoader-based command registration and auto-discovery
  • Session Management: Distributed session tracking across multiple nodes
  • Request Routing: Intelligent routing based on browser capabilities

Capabilities

Command Line Interface

CLI interface providing traditional Grid 3 role-based commands and limited modern command support for different deployment scenarios.

# Traditional Grid 3 syntax (recommended)
java -jar selenium-server-standalone-3.141.59.jar -role <hub|node|standalone> [options]

# Modern command syntax (limited support)
java -jar selenium-server-standalone-3.141.59.jar <command> [options]
# Commands: standalone, hub, node, router, distributor, sessions

Command Line Interface

HTTP REST API

REST API endpoints for WebDriver protocol implementation, session management, node registration, and Grid administration.

// Core endpoint patterns
POST   /session                        // Create new WebDriver session
GET    /session/{sessionId}/*          // WebDriver commands  
POST   /se/grid/session/{sessionId}    // Register session with Grid
GET    /status                         // Get component status
POST   /se/grid/distributor/node       // Register node with distributor

HTTP REST API

Configuration Management

Flexible configuration system supporting multiple sources with well-defined precedence rules for enterprise deployment scenarios.

// Configuration interface
interface Config {
    String get(String section, String option);
    int getInt(String section, String option);
    boolean getBool(String section, String option);
}

// Configuration sections: server, distributor, sessions, node

Configuration Management

Extension Points

Public interfaces and abstract classes for customizing Grid behavior, including session factories, command handlers, and component implementations.

// Core extension interfaces
interface CommandHandler {
    void execute(HttpRequest req, HttpResponse resp) throws IOException;
}

interface SessionFactory {
    boolean isSupporting(Capabilities capabilities);
    Optional<ActiveSession> apply(Set<Dialect> downstreamDialects, Capabilities capabilities);
}

Extension Points