Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Selenium connects test code to a browser through a language binding, the WebDriver API and protocol, and a browser-specific driver. For one computer, install a Selenium binding and browser and follow that binding’s setup guide; Selenium Manager can handle driver management in supported binding workflows. Add Selenium Grid when tests need remote browsers, parallel runs, or machines with different platforms and browser versions.

How Selenium’s pieces work together

Selenium is not a browser, and a local test does not automatically require Selenium Server. The basic path is:

  1. Test code and language binding: Your code calls Selenium’s API through a binding for a language such as Java, Python, or JavaScript.
  2. WebDriver: The binding uses the language-neutral WebDriver API and protocol to express browser actions and receive results. Selenium describes WebDriver as an interface for instruction sets that can run across many browsers (Selenium overview).
  3. Browser-specific driver: A driver implementation translates WebDriver commands for a particular browser.
  4. Browser: The driver delegates the commands to the browser, which performs the actions.

In a local setup, these pieces run on the same machine. With Grid, the client sends commands to a remote endpoint, and Grid routes the session to a suitable browser instance.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Set up a local WebDriver test

For a first local test, choose the programming language and browser first: the installation command and script depend on that combination. The general sequence is to install the Selenium language binding, install the browser, and follow the binding’s official first-script instructions. Selenium Manager can manage drivers automatically in supported binding workflows; check the binding guide for the setup that applies to your language and version (Selenium overview; Selenium Manager).

Do not assume that every local test needs a separately downloaded driver or a running Selenium Server. The binding’s current documentation is the right place to confirm what it manages for the selected browser.

What Grid adds

Selenium Grid routes WebDriver scripts to remote browser instances. That lets a team run sessions in parallel and target different browser versions or platforms from a central client endpoint (Selenium Grid overview).

Grid’s components divide up session handling:

  • Router: Front end for new-session requests and traffic for existing sessions.
  • New Session Queue: Holds incoming requests until they can be assigned.
  • Distributor: Matches a request to an available Node slot whose stereotype fits the requested capabilities.
  • Node: Hosts browser sessions.
  • Session Map: Maps session IDs to the Nodes running those sessions.
  • Event Bus: Carries asynchronous events among Grid components.

Calls that need a response use synchronous REST-like JSON over HTTP; the Event Bus carries broadcasts and events where an individual response is not required (Grid architecture). A slot represents a browser configuration a Node can offer, but it does not by itself guarantee how many sessions that Node can run at once.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose a Grid deployment mode

Mode Where components run When it fits
Standalone Grid components run together in one process on one machine. Local Grid exploration, debugging, or a quick CI setup when one machine is sufficient.
Hub/Node A Hub provides a central endpoint; one or more Nodes can run on other machines. Centralized access to browser capacity across machines, operating systems, or browser versions.
Distributed Grid components are started and deployed separately. Deployments that need separate component roles or independent placement.

These are operational choices rather than fixed scale guarantees. Selenium’s guide describes small, medium, and large Grid sizes as rough estimates, not thresholds; choose based on the number of machines, sessions, browser and platform diversity, isolation needs, and operational capacity (Grid getting started).

Start a single-machine Grid

The official quick start lists Java 11 or higher, browsers, and browser drivers on PATH or Selenium Manager enabled for Grid as prerequisites. Confirm the Java requirement against the Selenium Server release you install. Download the current Selenium Server JAR from the official project page, then run:

java -jar selenium-server-<version>.jar standalone

Replace <version> with the JAR’s version. Standalone listens by default at http://localhost:4444. Configure the test client’s RemoteWebDriver URL to that endpoint; the client then sends WebDriver requests to Grid rather than directly to a local browser driver (Grid getting started).

Expand to multiple machines

Hub/Node is the usual next step when a central entry point should direct sessions to Nodes on different machines. A Node can offer browser slots for specific capabilities, allowing the Distributor to match requests with an available configuration. Capacity can be expanded by adding Nodes without taking the whole Grid down.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

In the documented default-port example, register a Node with the Hub using:

java -jar selenium-server-<version>.jar node --hub http://<hub-ip>:4444

Replace <hub-ip> with the Hub machine’s reachable address. If you change ports or separate the Grid components, configure the publish/subscribe Event Bus endpoints and Grid port as required. Flags and defaults can change between releases, so check the help from the installed version rather than treating an example as universal (Grid getting started; Grid CLI options).

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Plan capacity by measuring your workload

Selenium’s Grid guide offers about 1 GB of RAM per browser session as a planning estimate, and describes default concurrency as generally CPU-based, with Safari limited to one session. These are rough references, not universal benchmarks or capacity promises. Browser mix, test behavior, machine resources, and other workloads affect the result. Measure session stability and resource use on the target environment before deciding how many concurrent sessions to run (Grid getting started).

Check that Grid is ready

  • Open the Grid UI at the configured endpoint, such as http://localhost:4444 for the default Standalone setup, and confirm that Nodes and browser capabilities appear.
  • Request /status at the same endpoint to check Grid status.
  • Confirm that requested browser capabilities match a Node’s available slots.
  • For configuration or security options that differ from online documentation, consult the installed server’s own help: java -jar selenium-server-<version>.jar info config and java -jar selenium-server-<version>.jar info security (Grid CLI options).

Protect Grid from unwanted access

Do not expose a Grid endpoint publicly as a routine setup. Selenium warns that an exposed Grid can give third parties access to its infrastructure, internal web applications and files, and the ability to run custom binaries. Restrict access with appropriate firewall rules and network controls, especially when Nodes can reach internal systems (Grid getting started; Grid architecture).

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Understand Selenium Manager’s two contexts

Selenium Manager is a Rust command-line tool for automated browser and driver management. Selenium bindings use it by default in supported workflows, but the Grid server’s CLI has a separate --selenium-manager setting that is documented as false by default. A binding’s default behavior therefore does not establish that a Grid server will manage drivers the same way. For a Grid deployment, verify the server flag and configuration for the installed release (Selenium Manager; Grid CLI options).

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.