Recommended Free Tools
Selenium connects test code to a browser through a language binding, the WebDriver protocol, and a browser-specific driver. A local test usually needs no Selenium Server: install a language binding and browser, then follow that binding’s first-script guide. Add Selenium Grid when you need browser sessions routed to remote machines or distributed across multiple browsers and platforms.
How Selenium’s architecture works
Selenium is a set of tools for browser automation, not a browser. Its central interface is WebDriver: a language-neutral API and protocol for issuing browser commands. A language binding lets your test code use that interface; a browser-specific driver receives WebDriver commands and delegates them to the browser. The Selenium project describes WebDriver as “an interface to write instruction sets that can be run interchangeably in many browsers.” Selenium’s overview introduces the project’s components and language bindings.
As an Amazon Associate I earn from qualifying purchases.
- Test code and binding: your script uses Selenium’s binding for its programming language.
- WebDriver: the binding sends commands using the WebDriver API and protocol.
- Browser driver: the driver implementation for the chosen browser handles those commands.
- Browser: the driver controls the browser and returns results through the same chain.
For a local run, these pieces work together on your machine. Grid adds a remote routing layer: the client sends a request to Grid, which selects a suitable browser session on a Node and forwards commands to it. The Grid overview describes this as routing WebDriver scripts to remote browser instances.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, 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 minuteWhat happens inside Grid
Grid’s architecture has six components. The Router is the client-facing entry point; it forwards new-session requests and traffic for existing sessions. The New Session Queue holds requests while the Distributor looks for a matching Node slot. Nodes host browser sessions, and the Session Map records which Node owns each session ID. The Event Bus carries asynchronous events between components.
#1 Best Overall
For calls that need a response, Grid uses synchronous REST-like JSON over HTTP. The Event Bus is for asynchronous messages such as broadcasts where a response is not required. A slot’s stereotype describes the browser capabilities it can provide; a slot is not, by itself, a guarantee of a particular overall concurrency level.
Choose local WebDriver or Grid
| Setup | Best fit | Where it runs | Main trade-off |
|---|---|---|---|
| Local WebDriver | Writing, debugging, or running tests on one machine | Test code, driver, and browser are used locally | Simple to start, but does not provide Grid’s remote routing across machines |
| Grid Standalone | A quick Grid setup, development, or CI on one machine | All Grid components run together in one process | One-machine capacity and failure boundary |
| Hub/Node | A central endpoint with browser capacity on multiple Nodes | Hub routes requests to Nodes, which may run on separate machines | More capacity and diversity, with added network and administration needs |
| Distributed Grid | Separately deploying Grid components | Components run in separate processes or locations | Greater deployment flexibility and operational complexity |
Use local WebDriver unless remote execution solves a real need. Standalone is the simplest way to try Grid or provide one-machine CI routing. Hub/Node is useful when you need a central endpoint and Nodes with different operating systems, browser versions, or additional capacity. Distributed mode separates Grid roles for deployments that need that separation. Selenium’s Grid getting-started guide explains the modes and their startup options.
Rank #2
Set up a local Selenium test
The exact package command and first script depend on your programming language and browser. Start with the official guide for the binding you intend to use; install that binding and the browser, then follow its first-test instructions. The binding’s Selenium Manager workflow can manage drivers automatically in supported setups, so a separate manual driver installation may not be necessary.
Free tools Windows power users keep installed
One-click scans. No signup required.
Selenium Manager is a Rust command-line tool for browser and driver management. The project overview says Selenium bindings use it by default. That statement is about local binding workflows, not a universal Grid server setting: the Grid server CLI documents --selenium-manager as false by default. If you rely on Grid to manage drivers, check the options for the server version you actually run. See Selenium Manager documentation and the Grid CLI options.
Rank #3
Start a single-machine Grid
The Selenium Grid quick start lists Java 11 or higher, browsers, and either browser drivers on PATH or Selenium Manager enabled for Grid as prerequisites. Java is a documented requirement on that page; check the documentation for the Selenium Server release you plan to use, since requirements and options can change.
- Install Java and the browser or browsers you intend to automate.
- Download the current Selenium Server JAR from the Selenium downloads page.
- Start the server in Standalone mode:
java -jar selenium-server-<version>.jar standalone - Configure the test client to use
http://localhost:4444, the documented default endpoint for RemoteWebDriver requests.
Standalone combines Grid components in one process on one machine. It does not turn a local test into a multi-machine Grid; use Hub/Node or Distributed when you need separate Nodes or components.
Scale to Hub/Node or Distributed mode
In Hub/Node mode, the Hub provides the central entry point and Nodes host browser sessions. A Node can register with the Hub using the documented pattern --hub http://<hub-ip>:4444. Nodes may be placed on other machines to provide different browsers, operating systems, or versions. This arrangement also lets you adjust Node capacity without shutting down the entire Grid.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minuteDistributed mode runs Grid components separately and is intended for deployments where those roles need independent placement. Nodes and the Hub communicate over HTTP and the Event Bus. If you change the default Hub ports, configure the Grid port and publish/subscribe Event Bus endpoints consistently. CLI flags and defaults are version-sensitive; consult the configuration help from the server JAR you installed rather than copying flags from a different release.
Best Value
To inspect the installed server’s guidance, use:
java -jar selenium-server-<version>.jar info config
java -jar selenium-server-<version>.jar info security
These commands provide configuration and security help derived from that installed code version. The Grid CLI documentation describes the available command-line options.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Plan Grid capacity realistically
Selenium’s Grid guide offers rough planning guidance of about 1 GB of RAM per browser session and says default concurrency is generally CPU-based; it also documents Safari as limited to one session. These are project guidance, not benchmark results or capacity guarantees. Actual use depends on browser, workload, machine resources, and configuration, so measure concurrency in the environment that will run your tests. See the Grid getting-started guide.
The same guide labels its size categories as approximate: small Grid is Standalone or Hub/Node with up to five Nodes; medium is Hub/Node with six to sixty Nodes; large is Hub/Node with sixty to one hundred Nodes or Distributed with more than one hundred. These ranges are orientation, not thresholds at which a deployment must change modes. Select a mode based on workload, browser and platform coverage, isolation needs, failure impact, and the effort your team can operate.
Protect and check your Grid
A Grid endpoint is an automation control surface, not a public service to expose casually. Selenium warns that outside access can let third parties use Grid infrastructure, reach internal web applications or files, and run custom binaries. Restrict network access with appropriate firewall rules and keep Grid reachable only by trusted clients. The Grid documentation covers architecture and security considerations.
Quick Recap
- Open the Grid UI at the configured endpoint to see registered Nodes and available browser capabilities.
- Request
/statusat the Grid endpoint to check whether the server is ready. - If a session request cannot be matched, check that a Node is registered and that its available slot stereotype matches the requested browser capabilities.
- If documented flags do not match your server, use its
info configandinfo securitycommands to verify version-specific help.
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.




