×
☰ See All Chapters

Selenium Testing Tool

In this tutorial you will learn

  1. History of Selenium 

  2. The merging of Selenium RC and WebDriver 

  3. Why the Name Selenium? 

  4. Different Selenium components 

History of Selenium

Selenium was originally created by Jason Huggins, an engineer at ThoughtWork’s ,  in 2004 to solve the issue of getting the browser to do user interactions. To avoid repetitive execution of same test cases, he developed a JavaScript library that could do user interactions with the page, allowing him to automatically rerun tests against multiple browsers. This javascript library became Selenium Core.

Selenium was a good automation framework, but it was not without its limitations. This was a javascript library, JavaScript sandbox in browsers imposes the security limitations on browsers to prevent malicious code executing on the client machine. The main security policy people come across is the Same Origin Policy. One site might have used a javascript library from another site. In this case the second site will allow the library to load only on to the page while blocking the access to external calls like access to selenium javascript library. Also, when moved from HTTP to HTTPS, browsers blocks the action because both are no longer in the same origin.

To overcome same origin policy, testers started maintaining all the resources in same origin which is in their local computer. To solve this pain-point, another ThoughtWork's engineer, Paul Hammant, created a server to create the proxy for resources of other origin. These proxy resources are used in place of resources of other origin to overcome same origin policy. This system became known as the Selenium Remote Control or Selenium 1.

With the move to mobile devices and HTML5, Selenium RC was starting to show that it wasn't able to fulfill its original requirement: browser automation to mimic what the user is doing. Simon Stewart, another ThoughtWork's engineer, created WebDriver project to operate the browser in a different approach moving away from procedural style of Selenium RC to Object Orientated development style.

The merging of two projects

Both Simon Stewart and Jason Huggins thought that it would be a really good idea to merge the two projects together. This was then called Selenium 2 aka Selenium WebDriver.

Why the Name Selenium?

There is an interesting story for this. During the development of selenium core the Mercury Interactive developed competitive product QTP (Later Mercury Interactive has acquired by HP). Selenium is used to remove the toxic content mercury from the human body, So Jason suggested that name. This is how it gets the name Selenium.

Different Selenium components

The selenium is majorly built on below components.

  1. Selenium IDE (Integration Development Environment) 

  2. Selenium RC 

  3. Selenium grid 

  4. Selenium web driver 

  5. Selendroid and appium 

  6. Winium 

 

selenium-tools-0
 

Selenium IDE

IDE stands for Integrated Development Environment. It is to record and run the script. It is an add-on for Firefox (we can install and record in Firefox browser only). It is accountable for user actions (for each and every action it will generate the script). By default it will generate the script in html language. If required we can convert to other supported language like java, .net, etc. The recorded scripts can be run against other browsers also with the help of RC or web driver.

Selenium RC

RC stands for Remote Control. It is the selenium1 and introduced in 2004 by Jason Huggins. It is a server which is responsible to launch all the browsers but one browser at a time. We can able to automate the entire application by using selenium RC.

Selenium web driver

It is the selenium2 & 3 and it is an advanced version of RC. The limitations which are identified in RC are overcome in web driver and also given the added advantages.

Selenium Grid

It is for parallel execution. We can launch all the browsers parallel and the scripts can be executed in all the browsers parallel at a time. Maximum of 5 different browsers can be launched by using grid.

Selendroid

It is to test the mobile apps on the android platform. it is to test on less than 4 android versions

Appium

It is to test the mobile applications on both android and iOS platforms. If the android version is more than 4 we need to use Appium

 


All Chapters
Author