• Selenium IDE Firefox extension for recording, editing, running, ... selenium scripts - all in an own language called selenese.
  • Selenium Remote Control (RC) / Selenium 1.0 Remote Control Server, acts as proxy between your websites and your browser, injects some Selenium JS (Selenium Core) which enables browser navigation. Selenium RC is basically Selenium version 1. Does not work well with pop-up windows, file uploads etc.
  • WebDriver - A better way to control browsers. Where Selenium RC injected the Selenium Core JavaScript and used it to control the browser, WebDriver uses different appoaches for each browser for navigation. For Firefox, it's a plugin, for IE, it's the automation control. This is then exposed through a standardized WebDriver API:
WebDriver driver = new FirefoxDriver();

// Now go to the Google home page
driver.get("http://www.google.com");

// Find the search box, and (ummm...) search for something
WebElement searchBox = driver.findElement(By.name("q"));
searchBox.sendKeys("selenium");
searchBox.submit();
  • Selenium WebDriver / Selenium 2.0) Selenium Server now uses WebDriver implementations to speak to the browsers directly by using their native API. A WebDriver exposes a browser through a standardized WebDriver API, which the Selenium WebDriver Server uses.
  • Selenium Grid / Selenium Grid 2. First of, Selenium Grid 2 ist the new version of Selenium Grid. Selenium Grid 2 is integrated directly into the Selenium 2.0 Server. It allows you to run tests against different machines, environments and browsers at the same time / in parallel.
DesiredCapabilities capability = DesiredCapabilities.firefox();
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability);

You can start the Selenium 2 Server either in role node or as hub (=grid). The nodes register at the hub/grid, which the delegates RemoteWebDriver requests to the matching instance:

hub mode

java -jar selenium-server-standalone-2.35.0.jar -role hub

node mode

java -jar selenium-server-standalone-2.35.0.jar -role node -hub http://
hubip:4444/grid/register -browser browserName=firefox,platform=WINDOWS