Selenium Grid server that enables distributed test execution across multiple browsers and operating systems.
npx @tessl/cli install tessl/maven-org-seleniumhq-selenium--selenium-server@3.141.0Selenium 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.
<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-server</artifactId><version>3.141.59</version></dependency> or standalone JAR downloadPrimary 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.SeleniumServerStart 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:4444Modern 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:4444The Selenium Grid server is built around several key architectural components:
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, sessionsREST 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 distributorFlexible 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, nodePublic 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);
}