Hero Background

Power Your Software Testing with AI Agents and Cloud

The Native AI-Agentic Cloud Platform to Supercharge Quality Engineering. Test Intelligently and Ship Faster.

AutomationSelenium TutorialTutorial

Selenium Standalone Server and Selenium Server [Differences]

Uncover disparities: Selenium Standalone Server vs. Selenium Server. Elevate your Selenium skills for sophisticated testing.

Last Updated on:

Selenium Standalone Server and Selenium Server both execute browser commands, but Standalone Server runs modern WebDriver-based tests through Selenium Grid while Server ran the deprecated Selenium RC engine.

Standalone Server implements the W3C WebDriver protocol that Selenium 3 and Selenium 4 use and can launch up to five browsers in parallel, while Selenium Server executes only one RC script at a time.

This guide covers Selenium's core components, when to run Standalone Server versus Grid, and the complete difference between Standalone Server and the legacy Server.

Key Takeaways

  • Selenium Standalone Server runs tests through the W3C WebDriver protocol used by Selenium 3 and Selenium 4.
  • Selenium Server is the deprecated engine that ran Selenium Remote Control (RC) scripts on a single browser at a time.
  • Selenium Grid lets Selenium Standalone Server launch up to five browsers in parallel across different machines.
  • Selenium Manager, built into Selenium since version 4.6, downloads the correct browser driver automatically without a manual ChromeDriver or GeckoDriver setup.
  • Selenium IDE works as a browser extension for Chrome, Firefox and Edge, and integrates with Selenium Cloud Grid for parallel recording and playback.
  • Cloud-based Selenium Grid removes the need to manually maintain Selenium Hub and Node infrastructure across operating systems and browser versions.

Selenium Components

Selenium is a suite of tools with a distinct approach to support automation testing. It provides more than just a base for building an automated testing framework – Selenium is an open-source project with a large community, which means there are many ways to contribute to the project, participate in the discussion and gain valuable knowledge.

Read more: The Top 52 Selenium Open Source Projects On GitHub

Selenium is widely regarded as one of the best test automation frameworks for web test automation.

Selenium has 34,501 stars and 8,717 forks on the Selenium GitHub Page. However, when integrating Selenium into your project, you need to consider that there are different ways of doing this. The latest version of Selenium (Selenium 4) has some interesting innovations. Selenium 4 was released in October 2020, with an exciting set of new features:

Selenium 4 features diagram

Also read: What’s New In Selenium 4 & What’s Being Deprecated?

However, if you are new to Selenium 4 or want to migrate from Selenium 3 to Selenium 4, this video from the TestMu AI YouTube Channel will help you get started with Selenium 4:

Youtube thumbnail

You can follow the channel to stay updated with more videos on Selenium Testing, Cypress Testing, and more.

Selenium has different components, which helps to achieve multiple purposes like Record and Playback test cases directly from the browser, running test cases in a remote machine, writing script-based test cases in various programming languages, and more.

types of selenium
Next-generation test execution with TestMu AI

Selenium IDE

It’s an Integrated Development Environment to record and play AUT directly from the browser. Testers who don’t have scripting knowledge can effectively use this IDE to record their interactions with the AUT and playback any number of times in the future.

Selenium IDE is available as a browser extension, and it can only be used with browsers that support extensions. Initially, in Selenium 2, it was available only for the Chrome browser. However, now we can use it with Chrome, Firefox, and Edge browsers. With Selenium 4, the Selenium IDE can also be integrated with Selenium Cloud Grid like TestMu AI. This helps in expediting the testing process as Selenium automation tests can be run in parallel on different browsers & OS combinations.

Selenium IDE welcome dialog

​​Also read – Detailed Selenium IDE Tutorial

Selenium WebDriver

Selenium WebDriver is an Open Source API and a script-based test framework that helps execute the same script in different browsers with the help of browser drivers.

Browser

Supported OS

Maintained by

Download

Chromium/Chrome

Windows/macOS/Linux

Google

https://chromedriver.storage.googleapis.com/index.html

Firefox

Windows/macOS/Linux

Mozilla

https://github.com/mozilla/geckodriver/releases

Edge

Windows/macOS

Microsoft

https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

Internet Explorer

Windows

Selenium Project

https://www.selenium.dev/downloads

Safari

macOS High Sierra and newer

Apple

Built-in

Selenium WebDriver can be integrated with TestNG and JUnit test frameworks to achieve parallel execution, manage test scripts, and generate test reports. To choose the appropriate framework for your test requirements, check out our tutorial on JUnit 5 vs. TestNG.

You can also perform Continuous Integration testing by integrating WebDriver with Maven and Continuous testing with Jenkins.

Also read: How to integrate Jenkins with Selenium WebDriver?

Selenium Grid

Selenium Grid is a tool that allows you to manage several different Selenium Server instances on different machines. It makes the process of executing tests in parallel easier and allows you to scale your tests across a number of different nodes.

Selenium Grid is most commonly used in automated web testing, however, it can be used for any type of test that requires multiple Selenium Server nodes.

Let’s deep dive into Selenium Grid in the next section:

Do You Still Need to Manually Download Browser Drivers?

No. Selenium Manager, built into Selenium since version 4.6, detects the browser version installed on the machine and downloads the matching driver automatically before the session starts.

Selenium Manager ships as a small Rust binary invoked by the Selenium client library the first time a browser session starts, and it caches the resolved driver locally so later runs skip the download.

Selenium Manager automates the driver download step that Selenium WebDriver setup previously required by hand. It handles the following automatically:

  • Driver resolution: Selenium Manager matches the installed Chrome, Firefox, Edge or Safari version to the correct driver binary and downloads it before the test run starts.
  • Version tracking: teams no longer need to check ChromeDriver, GeckoDriver or EdgeDriver release pages by hand to keep driver versions in sync with installed browsers.
  • Manual override: passing a driver path explicitly through a system property still overrides Selenium Manager, which CI environments use to pin a specific driver version.
  • Browser coverage: Selenium Manager supports Chrome, Firefox and Edge; Safari and Internet Explorer still need the driver named in the Selenium WebDriver support table.

Selenium Manager only resolves the local driver binary. Selenium Standalone Server and Selenium Grid still route sessions to remote and cloud browsers, so the distinction this article covers has not changed.

Selenium Standalone Server or Selenium Grid

Selenium Grid facilitates test cases to execute in multiple machines and browsers simultaneously, which fastens the test case execution speed and drastically reduces the turnaround time. In Selenium 3, Selenium Standalone Server (Selenium Grid ) has two different components.

  • Selenium Hub: Hub is a central system that accepts test case requests from clients. It also manages threads.
  • Selenium Node: Node registers itself with the hub, and it’s a place where the actual browser exists. A node machine is connected to the hub, which receives test scripts from the hub and executes them. It is also possible to launch several nodes on different devices running different environments.
Standalone Server or Selenium Grid

In Selenium 4, the Grid becomes more flexible. For example, once the user starts the server, the Grid automatically works as both nodes and hubs, so the user does not need to start hub and node separately as in Selenium 3 Grid.

It also supports advanced tools like Docker, which is used in the DevOps process. Now Grid 4 has a more user-friendly UI also.

There are three ways to run Selenium Grid 4:

  • Starting as Standalone, Gird itself acts as hub and node.
  • Start as a separate Hub and Node.
  • Fully Distributed (Router, Session, Distributor, etc.)

Also read: Selenium Grid 4 Tutorial

Test infrastructure that does not break, from TestMu AI

Executing Test Cases using Selenium Grid in Standalone mode

In this section of the article, we will see how to execute test cases using Selenium Grid in Standalone mode.

Step1: Download Selenium Standalone Server/Grid jar file, i.e., selenium-server-4.49.0.jar

Selenium Server Grid download

Step 2: Start the server as Standalone. Open the terminal and navigate to where the jar file is downloaded, and then type: “java -jar selenium-server-4.49.0.jar standalone”

Step 3: Now, the local Grid is ready with the attached node and starts to accept and execute test cases.

Selenium Standalone server logs

Once the Server is started, all the available browsers and session details of browsers can be viewed at http://localhost:4444/ui/index.html#/.

Selenium Grid overview UI

Step 4: To execute test cases, initialize the browser from the grid and invoke via RemoteWebDriver, passing the grid URL and browser capability.

package LambdaTest;

import java.net.MalformedURLException;
import java.net.URL;

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

public class TestCaseRunToGrid {
	

	  public  RemoteWebDriver driver = null;

	 
	  @BeforeTest
	  public void setUp() throws Exception {

	      ChromeOptions options = new ChromeOptions();
	       options.setAcceptInsecureCerts(true);
	       options.setCapability(CapabilityType.BROWSER_NAME,"chrome");
	    
	      try {
	    	   driver = new RemoteWebDriver(new URL("http://localhost:4444"), options);
	         
	      } catch (MalformedURLException e) {
	          System.out.println("Invalid grid URL");
	      } catch (Exception e) {
	          System.out.println(e.getMessage());
	      }
	  }
	 
	  @Test
	  public void firstTestCase() {
	      try {
	          System.out.println("Logging into Lambda Test Selenium PlayGround page ");
	          driver.get("https://www.testmuai.com/selenium-playground/simple-form-demo/");
	          WebElement messageText=driver.findElement(By.cssSelector("input#user-message"));
	          messageTextBox.sendKeys("Welcome to cloud grid");
	          
	          WebElement getValueButton = driver.findElement(By.cssSelector("#showInput"));
	          getValueButton.click();
	          System.out.println("Clicked on the Get Checked Value button");
	      } catch (Exception e) {
	 
	      }
	   }
	 
	  @AfterTest
	  public void closeBrowser() {
	      driver.close();
	      System.out.println("The driver has been closed.");
	  }

}

Code Walkthrough

RemoteWebDriver setup code

In this code block, I have used one of the most popular test automation frameworks, TestNG. TestNG is a java based framework designed for Unit, Functional, and End to End testing. If you are new to TestNG, you can go through this Selenium TestNG Tutorial to get started with your first TestNG automation script.

With TestNG Assertions and Annotations, you can group and orchestrate the large test case execution, validate the expected result, and execute test cases in parallel.

@BeforeTest is the TestNG Annotation that executes the statements before each TestMethod runs. Prerequisites for each test method like launching the browser, configuring browser parameters, launching the application URL, setting browser properties kind of statements can be included in this code block.

In Selenium 3, DesiredCapabilities Class helps to set up properties of the browser. However, the DesiredCapabilities Class is replaced by Options in Selenium 4.

Each browser has a respective Option Class that provides methods to change the browser’s properties such as cookies, incognito, headless, disabling pop-ups, and adding extensions.

Here is the Options object that would be used for setting the browser-specific capabilities:

  • Chrome – ChromeOptions
  • Firefox – FirefoxOptions
  • Internet Explorer (IE) – InternetExplorerOptions
  • Safari – SafariOptions
  • Microsoft Edge – EdgeOptions

RemoteWedDriver is a Class with all driver classes like ChromeDriver, EdgeDriver, FirefoxDriver, InternetExplorerDriver, OperaDriver, SafariDriver as SubClass.

To use this Class, we have to import the “org.openqa.selenium.remote” package. The RemoteWebDriver accepts two parameters, one is the hub URL, and the other one is an object of Browser Option. Here, I have launched Chrome browser using ChromeOption object, which provides the property of the browser to launch.

TestNG sign in test

@Test Annotation is one of the most important TestNG Annotations, which drives a simple Java method as a test case.

WebElement is a Selenium class, where the driver.findElement returns a WebElement object. Here, the Elements can be identified using multiple locator strategies.

Selenium Locators makes it easy to locate elements on a webpage and perform actions on them, which helps to ease the process of Selenium Automation Testing.

Advantages of Selenium Standalone Server

Limitations of working on local Selenium Grid

  • Initial setup of various nodes in different OS, browser, browser versions and setting up devices for mobile testing is burdensome for the QA team. It requires skilled resources to set up Hub and Node in various environments.
  • The performance also wholly depends on the Server/VM used to set up nodes.
  • It’s tough to scale down or up the number of nodes on demand.

Selenium Cloud Grid is the best solution to overcome all these shortcomings of the local grid.

Watch this video to learn about collecting performance metrics in Selenium 4 using the Chrome DevTools Protocol on the TestMu AI platform.

Youtube thumbnail

Why do we need Selenium Cloud Grid?

  • Easy maintenance – the team doesn’t need to take any hassle to maintain the software or hardware needs of servers for node setup.
  • Scalability – easy to manage the number of nodes/parallel execution
  • Reliability – Cloud servers have near-perfect availability, so there is a low risk of interruption.

Executing Test Cases using cloud Selenium Grid

This needs a minor update on code snippets, where the localhost gets to communicate with Selenium Cloud Grid like TestMu AI and access the URL.

Step 1: Register on TestMu AI and get the Username and Access Key from the TestMu AI Profile Section.

package LambdaTest;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

public class TestCaseRunToCloudGrid {
	

	  public  RemoteWebDriver driver = null;

	  public String username = "";//LambdaTest userName
	  public String accesskey = "";//LambdaTest Accesskey
	  public String gridURL = "@hub.lambdatest.com/wd/hub";
	  
	  @BeforeTest
	  public void setUp() throws Exception {
	      
			DesiredCapabilities capabilities = new DesiredCapabilities();
			capabilities.setCapability("browserName", "Chrome");
			capabilities.setCapability("browserVersion", "97.0");
			HashMap<String, Object> ltOptions = new HashMap<String, Object>();
			ltOptions.put("user",username);
			ltOptions.put("accessKey",accesskey);
			ltOptions.put("build", "Selenium 4 grid Sample");
			ltOptions.put("name", "Selenium 4 grid Sample");
			ltOptions.put("platformName", "Windows 11");
			ltOptions.put("selenium_version","4.0.0");
			capabilities.setCapability("LT:Options", ltOptions);
	      try {
	          driver = new RemoteWebDriver(new URL("https://" + username + ":" + accesskey + gridURL),capabilities);
	      } catch (MalformedURLException e) {
	          System.out.println("Invalid grid URL");
	      } catch (Exception e) {
	          System.out.println(e.getMessage());
	      }
	  }
	 
	  @Test
	  public void firstTestCase() {
	      try {
	          System.out.println("Logging into Lambda Test Selenium PlayGround page ");
	          driver.get("https://www.testmuai.com/selenium-playground/simple-form-demo/");
	          WebElement messageTextBox = driver.findElement(By.cssSelector("input#user-message"));
	          messageTextBox.sendKeys("Welcome to cloud grid");
	          
	          WebElement getValueButton = driver.findElement(By.cssSelector("#showInput"));
	          getValueButton.click();
	          System.out.println("Clicked on the Get Checked Value button");
	      } catch (Exception e) {
	 
	      }
	   }
	 
	  @AfterTest
	  public void closeBrowser() {
	      driver.close();
	      System.out.println("The driver has been closed.");
	  }

}

Code Walkthrough

LambdaTest grid credentials code

These public variables store the values for the TestMu AI username, key, and hub URL to execute the test case in Cloud Grid.

LambdaTest username

How the cloud grid understands the browser properties needs to be changed to scale up from local Grid to Selenium Cloud Grid. Here, only the hub URL and capabilities need to be updated by generating capabilities from TestMu AI Capability Generator.

Selenium testing tools like TestMu AI allows you to perform cross browser testing at scale. list of browsers provides 3000+ browsers with a combination of different OS and versions. The ltOptions map here stores all the browser properties required to launch the browser from the cloud hub.

RemoteWebDriver accepts two parameters, one as a Hub URL with credentials and the second one as a Capability object which has all the properties about the browser to launch. Here it is Windows 11 OS, Chrome Browser version 97.0.

Once the code is executed, you can also view your test results, logs, and the test recording as well in your TestMu AI Automation Dashboard.

LambdaTest Automation Dashboard

You can also see the test results on the TestMu AI Analytics Dashboard. The dashboard shows all the details and metrics related to your tests under the Test Overview and Test Summary section.

LambdaTest analytics dashboard

If you’re a software developer or tester with an interest in Selenium automation testing, this Selenium 101 certification course can help you develop your skillset.

Austin Siewert

Austin Siewert

Co-Founder, Steadfast Systems

Discovered @TestMu AI yesterday. Best browser testing tool I've found for my use case. Great pricing model for the limited testing I do 👏

2M+ Devs and QAs rely on TestMu AI

Deliver immersive digital experiences with Next-Generation Mobile Apps and Cross Browser Testing Cloud

Here’s a short glimpse of the Selenium 101 certification from TestMu AI:

Youtube thumbnail

Selenium Server

The Selenium server in Selenium 2 is entirely different from what we call Selenium Standalone Server/Selenium Grid in Selenium 4 and Selenium 3.

Selenium Remote Control (RC) was the main Selenium project that stood for a long time before Selenium WebDriver(Selenium 2.0) came into existence. But unfortunately, it depreciated due to its complex JavaScript layers and redundant API.

Selenium RC components

  • Client libraries for scripting language binding
  • Selenium Server to launch and interact with the browser
Selenium RC components

Selenium server helps to execute Selenium RemoteControl client scripts. Now it’s completely deprecated, and we don’t have the option to download this jar itself. However, when we look into older versions to better understand, To execute RemoteControl scripts, we need to start the Selenium Server first.

Here, I have mentioned a RemoteControl script, which executes the code in the local Selenium server, using LocalHost.

Selenium RC script code

Difference Between Selenium Standalone Server and Selenium Server

Selenium Standalone Server

Selenium Server

Supports WebDriver scripts

Selenium RC commands/scripts

It can launch up to 5 browsers, so it supports parallel execution 

Executes on only one browser at a time

Supports headless browser and fasten the execution

Headless htmlUnit browsers are not supported.

Conclusion

In this article, we have seen the difference between Selenium Standalone Server and Selenium Server. Understanding the difference between Selenium Standalone server and Legacy Selenium Server helps use the Selenium Grid effectively either in local, distributed mode or in Cloud Selenium Grid.

For interview preparation, review these Selenium interview questions.

Author

...

Veena Devi

Blogs: 2

  • Twitter
  • Linkedin

Veena Devi is a software testing and quality engineering leader with 14+ years of experience across automation, API, and manual testing for web, mobile, and desktop applications. She specializes in test automation framework design using Selenium, Java, TestNG, and Maven, along with Postman and SmartBear tools such as TestComplete and ReadyAPI. She previously served as Lead Engineer, Developer Relations at TestMu AI (formerly LambdaTest), and currently works as an Automation Lead while mentoring and training testing professionals.

Add to Google preferred sources

Summarise with AI

Copied to Clipboard!
...

3000+ Browsers. One Platform.

See exactly how your site performs everywhere.

Try it free
...

Write Tests in Plain English with KaneAI

Create, debug, and evolve tests using natural language.

Try for free

Selenium Standalone Server and Selenium Server FAQs

Did you find this page helpful?

More Related Blogs

TestMu AI forEnterprise

Get access to solutions built on Enterprise
grade security, privacy, & compliance

  • Advanced access controls
  • Advanced data retention rules
  • Advanced Local Testing
  • Premium Support options
  • Early access to beta features
  • Private Slack Channel
  • Unlimited Manual Accessibility DevTools Tests