Selenium Grid routes WebDriver commands to remote browser instances so you can run tests in parallel across machines, browser versions, and platforms. For a local start, run the Selenium Server JAR in Standalone mode and point your tests to http://localhost:4444. For distributed capacity, choose Hub-and-Node or Distributed mode, and secure every component from external access.
What Selenium Grid does—and what changed in Grid 4
Grid is Selenium’s way to run WebDriver scripts on remote machines. A client sends commands to Grid, which routes them to a browser session. That makes it possible to run tests in parallel and target different browser versions or operating systems. Selenium’s overview frames the use case as running tests in parallel across multiple machines: Selenium Grid overview.
As an Amazon Associate I earn from qualifying purchases.
Grid 4 was a ground-up rewrite that separated Grid’s functions into components. The Router accepts external requests. A request to create a session goes to the New Session Queue; a command for an existing session is routed through the Session Map to the Node hosting that session. The components can run together or be deployed separately, depending on the mode. See the Grid components guide.
Observability is another part of the architecture. Selenium Server is instrumented with OpenTelemetry, with end-to-end request tracing enabled by default. Traces, metrics, and logs help operators understand and debug a distributed system; they do not remove the need to monitor the deployment itself. The advanced features guide also lists GraphQL query support and Grid endpoints.
#1 Best Overall
Choose a Grid deployment mode
| Mode | Best fit | Trade-off |
|---|---|---|
| Standalone | Local RemoteWebDriver development, debugging, or a quick CI run. | One process on one machine; simplest to start. |
| Hub and Node | Combining machines, browsers, or operating systems behind one entry point. | Hub and browser Nodes run separately; add Node capacity without tearing down the Grid. |
| Distributed | Operating individual Grid components separately, often on different machines. | More deployment control, but components need working inter-component networking and the required ports. |
These are deployment patterns, not fixed capacity tiers. Grid sizing depends on the number of concurrent sessions and Nodes. Selenium documentation gives 1 CPU and 1 GB RAM per browser as a rough reference, not a guaranteed minimum or universal sizing rule; measure performance in your environment. See the getting-started guide.
Start a local Standalone Grid
Prerequisites
- Java 11 or higher.
- At least one browser installed on the machine.
- The corresponding browser driver available on
PATH, or Selenium Manager configured with--selenium-manager true. - The Selenium Server JAR downloaded from the latest release.
Launch and connect
- In a terminal, change to the directory containing the JAR.
- Run the command below, replacing
<version>with the version in the downloaded filename:java -jar selenium-server-<version>.jar standalone - Configure your RemoteWebDriver client to use
http://localhost:4444. The Grid UI is also available at that address in the documented examples.
Standalone runs the Grid components in one process and is limited to one machine. It is intended for local development and debugging as well as quick CI suites—not for distributing browser capacity across machines.
Scale out with Hub and Nodes
In Hub-and-Node mode, the Hub provides the central entry point and includes the Router, Distributor, Session Map, New Session Queue, and Event Bus. Nodes register browser capacity with the Hub.
Recommended Free Tools
Rank #2
- Start the Hub on the machine that will act as the Grid entry point:
java -jar selenium-server-<version>.jar hub - Start a Node on a machine with the browser capacity you want to provide:
java -jar selenium-server-<version>.jar node - Point WebDriver clients at the Hub’s address, using port
4444in the documented examples.
This layout lets one entry point combine different machines, browsers, or operating systems, and lets you add Node capacity without tearing down the Grid. If you run multiple Nodes on one machine, they need distinct ports and appropriate Event Bus publish/subscribe addresses. The exact flags depend on the Selenium Server version; consult the JAR’s own help output rather than copying options from another release.
Deploy components separately in Distributed mode
Distributed mode starts the Grid components individually, ideally on different machines. It gives operators control over component placement, but every component must be able to reach the others over the configured network.
The documented defaults include Event Bus ports 4442, 4443, and 5557, and New Session Queue port 5559. Port 4444 is used for the Grid UI in the examples. These are documented defaults, not a recommendation to expose them publicly. Set network rules so only intended Grid components and clients can connect; check the installed version’s help for the exact component commands and configuration.
Rank #3
What later Selenium 4 releases added
“Grid 4” spans many releases, so later additions should not be mistaken for features that all arrived with the initial Grid 4 release. These examples come from named release announcements, not a complete version-by-version chronology.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteSelenium 4.42
The Selenium 4.42 announcement, dated April 9, 2026, highlighted changes to the Grid WebSocket Router: a transparent TCP tunnel bypass path, handling for dropped close frames and idle disconnects, and a pluggable NodeCommandInterceptor loaded through --ext. It also noted unified configurations for Dynamic Grid Docker and Kubernetes in Docker. See the Selenium 4.42 announcement.
Selenium 4.47 and newer CLI documentation
The Selenium 4.47 announcement lists Kubernetes-related Dynamic Grid changes, including inheritance of a Node Pod security context and per-session video-folder behavior. The current CLI-options documentation reports that it includes options introduced in Selenium 4.48 and was modified September 3, 2026. Its Kubernetes options include an API URL, configs, namespace, service account, and image-pull policy. A flag documented on a current page may not exist in an older installed JAR, so verify availability with that JAR’s help output. See the Selenium 4.47 announcement and Grid CLI options.
Rank #4
Check options against your installed server
Selenium’s configuration help notes that command-line help reflects the current code implementation and can be more current than written documentation. Use the JAR you are actually deploying to inspect configuration and component options:
java -jar selenium-server-<version>.jar info configjava -jar selenium-server-<version>.jar info securityjava -jar selenium-server-<version>.jar info sessionmapjava -jar selenium-server-<version>.jar info tracingjava -jar selenium-server-<version>.jar --config-helpjava -jar selenium-server-<version>.jar standalone --helpjava -jar selenium-server-<version>.jar node --help
Grid includes built-in local session-map storage; Redis and JDBC SQL storage options are also documented. Confirm the supported configuration details against the version in use. The configuration help guide reports a September 16, 2026 modification.
Secure and operate the Grid
Do not leave a Grid exposed to the public internet. Selenium warns that an exposed Grid may give outsiders access to infrastructure, internal web applications or files, and the ability to run custom binaries. Restrict access with appropriate firewall permissions and configure secure communication and Node registration using the version-specific security help. The documented port defaults are for component communication, not permission to open them indiscriminately.
Best Value
Plan capacity from measured workload rather than assuming one browser-per-resource estimate will fit. Concurrent sessions, browser behavior, and the machines hosting the Nodes affect performance; monitor the Grid and adjust after observing actual runs.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Troubleshoot common setup problems
| Symptom | Likely cause | What to check |
|---|---|---|
| Server does not start | Java is missing or below the documented Java 11 requirement, or the JAR path or filename is wrong. | Check java -version, confirm the downloaded JAR filename, and rerun the command with the correct path. |
| Session creation fails because no browser matches | The Node lacks the requested browser, or its driver cannot be found or managed. | Install the browser and driver or configure Selenium Manager; inspect the Node’s available capabilities and its version-specific help. |
| Client cannot reach the Grid | The client is using the wrong host or port, or the server is not listening where expected. | For local Standalone, test http://localhost:4444; for remote modes, verify the configured Router/Hub address and firewall rules. |
| Node does not register or sessions never reach it | Hub and Node addresses, Event Bus ports, or network routing are misconfigured. | Check Node and Hub logs, verify required Event Bus connectivity, and inspect node --help from the installed JAR. |
| Distributed components fail to communicate | A required port is blocked or a component is configured with an unreachable address. | Verify component addresses and the documented Event Bus and New Session Queue defaults, then allow only the required internal traffic. |
| An option shown online is rejected | The documentation may describe a newer release than the installed JAR. | Run the relevant --help command or --config-help against the installed JAR and use only options it reports. |
Or skip the browser setup
For a clean website screenshot without configuring Selenium Grid or browser drivers, ScreenshotNeo offers a one-request API. Cookie banners are accepted and removed before capture, along with known consent platforms, newsletter popups, and chat widgets; each cleanup step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, with the response indicating the page verdict and billing status. ScreenshotNeo also provides an MCP server for AI agents, with take_screenshot, get_page_info, and capture_pdf tools.
Example cURL request (see the ScreenshotNeo API documentation):
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://selenium.dev -o shot.webp
ScreenshotNeo includes 1,000 screenshots a month free with no card; paid plans start at $5 for 3,000 shots. Learn about ScreenshotNeo or sign up for free.
FAQ
Is Selenium Grid a browser automation framework?
No. Grid routes WebDriver commands to browser sessions on remote machines; Selenium WebDriver supplies the automation interface.
Does the Selenium 4.42 announcement cover every Grid change in Selenium 4?
No. It describes selected changes in that release. Consult the official release notes for the specific version you plan to run for a full chronology.
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.




