What is the difference between Selenium Remote Control and Selenium Server?

On Selenium download page, there is a link to the Selenium RC (Remote Control).

On another Selenium download page, there are links for a Selenium RC 1.0.3, as well as Selenium 2 Server, sometimes also called Selenium 2 Standalone Server.

What is the difference between them?

If there are limitations, what are the limitations of each one?

Is the Selenium Server replacing the Remote Control?

Related question: selenium remote control vs webdriver

What is the difference between Selenium’s Remote Control vs WebDriver?

I’m not sure I quite understand the difference. WebDriver API also directly controls the browser of choice. When should you use selenium remote control (selenium RC) instead ? Right now, my current si

Difference between “selenium server” and “selenium server standalone” jars

Can anyone please explain the difference between selenium server and selenium server standalone jars and use of both. Which one to prefer? When to use which one?

Selenium Remote Control

Hy. I have a problem running selenium tests with Selenium Remote control. After I open a console windows and type the following command : java -jar selenium-server-standalone-2.2.0.jar -htmlsuite *fi

what is major difference between selenium1 and selenium2 [closed]

what is major difference between selenium1 and selenium2

What’s the difference between Selenium and selenium gems?

A newbie question on Selenium for Ruby. What’s the difference between gem install selenium and gem install Selenium? I’m trying to figure out which one I should install.

Difference between Selenium RC and WebDriver

What’s the basic difference between Selenium RC and WebDriver?

What is the difference between Selenium IDE, Server, RC, 2.0, and WebDriver?

Selenium seems to have a lot of different components and the website does not explain them very well and I’m still a bit confused which is which. What’s the difference or purpose between: Selenium IDE

Difference between python selenium webdriver and just selenium?

What is the difference between something like this: from selenium import webdriver browser = webdriver.Firefox() browser.get(‘http://www.ubuntu.com/’) and this: from selenium import selenium selenium

difference between thoughtworks and openqa selenium

What the difference between openqa.selenium and thoughtworks.selenium? How they compatible with each other? There is no class Selenium in package openqa.selenium, but there is class WebDriver. I want

Selenium: difference between “role hub” and “role webdriver”?

I’m using Selenium for automated testing. What’s the difference between java -jar selenium-server-standalone-2.24.1.jar -role hub and java -jar selenium-server-standalone-2.24.1.jar -role webdriver

Answers

The documentation on Selenium’s website says that the Remote Control consist of

  • a server
  • client libraries

The server is responsible for doing the actual work (executing actions in the browser) while your specifications for actions (the control of execution) comes from the different libraries.

This is called the Remote Control because the server does not have to be deployed on the same machine where the actual scripts are executed. The scripts can connect to a remote selenium server over the network and execute actions.

To sum up, when you are using the Selenium Remote Control, you are using the server + client libraries. They are meant to be used together.

I do not know if this is going to be the same for Selenium 2 or if they are changing things. I am only confident this is how things work for Selenium 1.

You should take a look at the documentation outlining the different parts of Selenium. That’s a good place to start as it guides you through the process of getting setup. Full disclosure, I help write the docs.

As for those downloads, the first link you have is the official releases for the project. The second link is the current beta builds, once they hit 2.0 they’ll be on the site.

  • Selenium Core – more a component of selenium than a stand alone project. Without going into the project history, Selenium was once just a collection of .js files that automated a browser. No one uses these directly, they’re just there for legacy reasons.
  • Selenium IDE – a firefox plugin for record/playback. You may want to start with this, to get used to the api, but you’ll outgrow it soon
  • Selenium RC and when you do outgrow it, you’ll use Selenium Remote Control. Selenium 1.x is a client-server architecture. You use the RC libraries to program tests that communicate with the server, and the server relays those commands to a browser.
  • Selenium Grid – a way to run Selenium testing on a distributed network of computers. Good for speeding things up once you’ve got a lot of tests.
  • Cubic Test – An eclipse-based tool that leverages selenium for testing. Not sure how popular it is.
  • Bromine – a web based script and test management tool. Uses selenium RC to run tests.

Then we get to the Selenium 2 beta. Selenium 2 is a major departure from the Selenium 1 model because it doesn’t require a Selenium server. I say ‘require‘ because it’s optional to run the tests remotely on another computer. Selenium Server Standalone is the server you’d use for this. It’s compatible with Selenium-RC as well as Selenium 2 for remote purposes.

You may have seen Selenium 2 referred to as WebDriver. WebDriver was another project that was merged a couple years ago and became the basis for Selenium 2. That’s why Selenium 2 has a WebDriver interface, sometimes called the “WebDriver” api to distinguish from Selenium-RC.

If you’re just starting out, I’d take a look at Selenium 2. It’s getting 99.9% of the developer love right now, and the Selenium 1.x apis won’t be advancing any further. As of January 2011 the Java libraries are the best supported, followed closely by .Net and Python/Ruby. Watir (the popular Ruby browser automation library) uses selenium under the hood if you want another api option.