Selenium Grid routes WebDriver tests to remote browser instances so teams can run tests in parallel across machines and cover different browsers, browser versions, and operating systems. In Selenium Grid 4, a request passes through coordinating components to a matching browser slot, and later commands are sent to the node that owns the session.
What Selenium Grid does
Selenium Grid is part of Selenium for distributing WebDriver execution across browser instances that may run on different machines. Instead of running every test in one local browser, a test can request a browser session from Grid. Grid finds available capacity that matches the request and directs the WebDriver commands to it.
This is useful when you need more parallel test execution, coverage across browser versions, or coverage across operating systems. Selenium describes the common need as: “Want to run tests in parallel across multiple machines?” Selenium Grid overview.
How a Grid 4 request moves through the system
Grid 4 separates request routing, session scheduling, browser execution, and communication into components. A simplified new-session flow is:
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →#1 Best Overall
- Router receives the request. The Router is the external entry point. For a new session, it sends the request to the New Session Queue.
- New Session Queue holds it. Pending requests are kept in FIFO order and are subject to configured timeout and retry behavior.
- Distributor selects capacity. The Distributor registers Nodes and tracks their capabilities. It matches the requested capabilities to an available browser slot. If no slot is available, the request can wait in the queue or eventually time out.
- Node creates the session. The selected Node hosts the browser slot and runs the WebDriver session.
- Session Map records ownership. Grid associates the session ID with the Node running it.
- Subsequent commands are routed. The Router uses the session mapping to send commands to the correct Node. The Event Bus carries asynchronous messages between Grid components; operations needing a response also use synchronous HTTP requests.
These roles are described in Selenium’s Grid components and architecture documentation. The Router should not be exposed to the wider web.
Grid deployment modes
The modes differ in how components are grouped and where they run. Choose based on machine count, desired concurrency, browser and operating-system diversity, network topology, and the operational isolation you need.
Rank #2
| Mode | How it is arranged | Typical use |
|---|---|---|
| Standalone | All Grid components run together in one process on one machine. The default RemoteWebDriver endpoint is http://localhost:4444. |
Local development and debugging, quick suites, or a simple CI setup. |
| Hub-and-Node | A Hub groups the front-end and coordination components. One or more Nodes register browser capacity with it; Nodes can be on other machines and platforms. | A central entry point for tests targeting multiple machines, operating systems, or browser versions, with capacity that can be scaled up or down. |
| Distributed | Grid components run separately, ideally on different machines, and communicate over the configured network paths. | Teams that need to deploy Grid components independently and can manage the additional networking and configuration. |
For the current details and mode-specific setup, use Selenium’s Getting Started guide.
Start a local Standalone Grid
Selenium’s quick start identifies Java 11 or higher, an installed browser, browser drivers (or Selenium Manager configuration), and the Selenium Server JAR as prerequisites. Requirements and command-line options can change between Selenium Server releases, so verify them for the version you plan to run.
Free tools Windows power users keep installed
One-click scans. No signup required.
Rank #3
- Install the required Java version, browser, and Selenium Server JAR for your release.
- Start the server in Standalone mode:
java -jar selenium-server-<version>.jar standalone. Replace<version>with the JAR’s actual version. - Configure your test’s RemoteWebDriver client to use
http://localhost:4444and request the browser capabilities it needs. - Run the test. Grid should create a session on an available matching slot; subsequent WebDriver commands use that session.
The exact prerequisites, startup instructions, and default ports are release-sensitive. Check the official getting-started documentation rather than assuming that an older command or port list applies unchanged.
Size Grid for the workload
Plan capacity around the browsers and operating systems you need to cover, the number of simultaneous sessions, the machines available, and their CPU and RAM. Selenium’s getting-started guide says a Node’s default concurrent-session limit is based on available CPUs, with Safari as an exception. It also gives an approximate expectation of around 1 GB of RAM per browser session and recommends smaller Nodes for process isolation. These are operational planning recommendations, not guarantees or controlled benchmark results; actual use depends on the browser, test workload, and environment.
More Nodes can add parallel capacity and separate workloads, but they also add machines and network paths to configure and operate. Ensure the components and Nodes can communicate on the HTTP and Event Bus paths configured for your deployment.
Configuration and safe operation
- Check the running release: Selenium notes that configuration can change. Its
--help configandinfocommands reflect the current implementation and may be more accurate than documentation that has not yet been updated. See the configuration documentation. - Keep the Router protected: It is Grid’s external entry point, but Selenium cautions against exposing it to the wider web. Limit access to trusted clients and configure the deployment’s network and security controls.
- Verify ports and communication: Default port examples are not a substitute for checking the exact release and deployment. Confirm that the relevant components and Nodes can reach one another over their configured HTTP and Event Bus paths.
- Account for queued sessions: If no compatible slot is free, requests wait or time out according to the queue’s configured behavior. Capacity, requested capabilities, and timeout settings all affect whether a new session starts.
Common setup problems
- RemoteWebDriver cannot connect: Confirm that the Grid server is running, the client uses the correct endpoint, and the port and network route match the deployment.
- A new session waits or times out: Check that a Node is registered and has an available slot matching the requested browser capabilities. Also check queue timeout and retry configuration.
- A browser session fails to start: Verify the browser is installed and that driver handling is configured for the Selenium Server release in use, including Selenium Manager where applicable.
- Nodes or components cannot communicate: Check the configured HTTP and Event Bus connectivity and any network controls between machines.
- A documented option does not work: Consult the configuration help and
infocommands for the running release; options and defaults can change.
Or skip the browser setup
For a website screenshot rather than a WebDriver test session, ScreenshotNeo offers a screenshot API and MCP server. One GET request can return a PNG, JPEG, WebP, or PDF. Cookie banners are accepted and removed, along with known consent platforms, newsletter popups, and chat widgets; those steps can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, with the outcome identified in response headers. Its MCP server gives AI agents tools for screenshots, page information, and PDF capture.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteExample cURL request (replace the URL with the page to capture):
Best Value
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for request options. The Free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000. Sign up for ScreenshotNeo’s free plan.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




