CtrlK
BlogDocsLog inGet started
Tessl Logo

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

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

Pending
Overview
Eval results
Files

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

Install with Tessl CLI

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