30

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 Selenium Server Selenium Remote Control WebDriver Selenium 2

My understanding is as follows:

Selenium IDE is a GUI plugin used for rapid prototyping of test cases in Selenese/HTML.

Selenium Server is a standalone java program which allows you to run HTML test suites in a range of different browsers, plus extra options like reporting.

Selenium Remote Control is the old name for Selenium Server, which only supports version 1 of the Selenium API.

WebDriver is the actual core API which has bindings in a range of languages and allows you to write standalone tests.

Selenium 2 is the latest version of the Selenium project, and includes the IDE, Server and WebDriver.

vidit
  • 6,293
  • 3
  • 32
  • 50
persepolis
  • 789
  • 3
  • 12
  • 22
  • Well, you've pretty much got it covered in your question :) Which parts are you confused about or need clarification? – Ranhiru Jude Cooray Aug 09 '11 at 11:02
  • Good to hear, I was just looking to see if I'd go anything wrong. Well, I'm a bit confused about the relationship between the Selenese test cases and a full blown script in WebDriver. Is the Selenese a kind of IDE-only "binding" that references parts of the full WebDriver API? – persepolis Aug 09 '11 at 11:47

2 Answers2

46

You're almost right.

  • Selenium IDE is a Firefox plugin used for rapid prototyping of test cases in Selenese/HTML, which can also export test cases in a variety of programming languages.

  • Selenium Server is a standalone java program which allows you to run test cases written in a variety of programming languages with a variety of web browsers, and which can additionally run HTML test suites in a range of different browsers, plus extra options like reporting. (My point is that the --htmlsuite option of selenium-server.jar is not its primary function, and will soon be split out into a separate program.)

  • Selenium Remote Control is an API for programming tests in a variety of languages in Selenium 1 and Selenium 2, and also the name of the Selenium 1 server that runs the API.

  • WebDriver is an API for programming tests in a variety of languages in Selenium 2, which can run with or without a server.

  • Selenium 2 is the latest version of the Selenium project, and includes the IDE, Server and both the Selenium RC and WebDriver APIs.

In addition:

  • Selenium Grid is a server that distributes tests across a set of Selenium Servers. In Selenium 1 it is a separate server, in Selenium 2 it is integrated into the Selenium Server.
Marcin
  • 48,559
  • 18
  • 128
  • 201
Ross Patterson
  • 9,527
  • 33
  • 48
  • Thanks. Am I right in saying that SRC is supported in Selenium 2 for legacy purposes, but Webdriver is the future for the API? – persepolis Aug 09 '11 at 13:17
  • The Selenium RC API is not being enhanced, and indeed there have been only a handful of bugfixes in the last year or two, and the WebDriver API is the Selenium Project's primary focus. But the **VAST** majority of Selenium users use IDE, which shares the core JavaScript implementation with RC. The WebDriver users are still a very small proportion of the Selenium community. – Ross Patterson Aug 09 '11 at 13:57
  • @Ross Patterson - "WebDriver is an API for programming tests in a variety of languages in Selenium 2, which can run with or without a server." - why do you want to run a WebDriver with the server? – Aravind Yarram Aug 09 '11 at 22:40
  • @Pangea: I didn't say it's a good idea, in fact I think it's a bad one. But the Selenium developers deliberately constructed it that way, and before they introduced the RemoteWebDriver driver, WebDriver didn't have a server-based execution mode. – Ross Patterson Aug 10 '11 at 13:14
  • 2
    @Pangea: You need the server component if you want to run the test and the browser on two separate machines. – jarib Aug 24 '11 at 19:07
1

Accepted answer is good, but since then better explanation were posted on internet: