Let’s start with the basic definition : Selenium is an opensource Automation Tool for Web based applications. You can use Selenium Automation from Record and Playback (using Selenium IDE) to exporting them in languages e.g. HTML, c#, Java, Ruby, Python etc. Once you have exported the tests, they can be run in supported browsers and on any platform through “Selenium RC (Remote Control)” & “Selenium Webdriver”. Selenium is not just a single tool, it’s a set of softwares where each component is serving different purpose.
Selenium Components :
Selenium is a suite of total 4 components as mentioned below.
1. Selenium IDE (Integrated Development Environment)
2. Selenium RC (Remote Control)
3. Selenium Webdriver
4. Selenium Grid
Now, let’s discuss more about Selenium components, when they launched and what purpose they serve.
Selenium IDE (Integrated Development Environment):
Selenium IDE is a Mozilla Firefox extension mainly used for Record and Playback of automation scripts. It was created by Shinya Kasatani and later donated to the Selenium Project in year 2006. User can create simple scripts through Selenium IDE and export to Selenium RC or Webdriver in any supported language.
Selenium IDE is supported only in Firefox browser. If you want to execute your scripts on another browser then you need to Use Selenium Webdriver. Below are some Advantages and Disadvantages of Selenium IDE :
1. Easiest to install, understand and use.
2. Apart from basic HTML and DOM knowledge, no other programming knowledge is required.
3. Easily export test scripts in languages e.g. HTML, c#, Java, Ruby, Python etc.
4. Extensions support is available.
1. Only supported by Mozilla Firefox.
2. Reporting feature is not available. We should use selenium Webdriver, with external plugin like Junit or TestNG to extract the execution report.
3. Conditional looping and error handling is not directly available. User needs to write such logic in supported native language to use.
To read more about installation and other features click here.
Selenium RC (Remote Control) :
Selenium RC solved the core limitation of IDE which was conditional looping and error handling support. Unlike IDE, Selenium RC is compatible with various programming language like (Java, PHP, Perl, Python, Ruby) and gives user platform to write test scripts having looping and conditional operations. Selenium RC has been officially deprecated. Below are the Advantages and Disadvantages.
1. Unlike Selenium IDE, it supports cross-browser and cross-platform execution.
2. Compatible with programming languages and can perform conditional looping and and error handling, including data driven testing.
3. With Junit and TestNG, reporting is possible.
4. Much faster test execution than Selenium IDE.
1. Programming knowledge is must.
2. Less features and slower execution than Selenium Webdriver. Click Here to see difference between Selenium RC and Webdriver.
3. Selenium Server needs to be up and running during execution.
Selenium Webdriver :
Webdriver is extended version of Selenium RC and serves better in many aspects. Unlike Selenium RC, webdriver don’t initiate Selenium server during the execution. It makes direct calls to the browser by using each browser’s native configuration support for automation. Many latest browsers and their versions are supported by Webdriver. In addition user can configure and execute Test scripts on HtmlUnit browser as well, which is a limitation for Selenium IDE and RC.
Webdriver also supports web based Mobile testing(using AndriodDriver and IphoneDriver). Webdriver is fastest in the execution compared to other components of Selenium suite. Webdriver also supports some complex conditions like Window switching, Alerts handling, AJAX functions, drop-downs etc. Below are some Advantages and Disadvantages of Selenium Webdriver.
1. Communicates directly with the browsers.
2. Faster execution than Selenium RC.
3. Rich API support.
4. Selenium RC server is no more needed.
5. Supports Web based mobile testing.
1. Programming knowledge is must.
2. Drivers need to updated to support latest browser versions.
3. Built-in configuration for automatic generation of test result is not available.
Selenium Grid :
Core purpose of Selenium Grid is to run Test script across different machines and different browsers in parallel. By running tests simultaneously in multiple browsers and environments saves a large amount of time.
Selenium Grid works on Hub-Node concept, where the Hub works as a central location having source of Selenium commands and each Node communicating with it.
To read in detail about Selenium Grid: Installation, Test designing and Execution please click here.