Select Page

Selenium is an open source web app automation implement by ThoughtWorks (IT outsourcing company). It has 4 components. Out of which one component i.e. Selenium Remote Control was developed by a Jason Huggins team in 2004. It was primarily developed in DHTML/Javascript when they were working on time and expense application indited in Python programming language. Later, Simon Stewart has developed an incipient component that is called as Webdriver in 2006 to surmount the disadvantages faced in Selenium Remote Control. And post that Selenium Remote Control and Webdriver were merged together and developed Selenium Webdriver.

They have named this tool as Selenium based on a chemical element in Chemistry which is used to destroy Mercury chemical element.  Mercury tool which is now called as UFT was the most popular automation tool.

Selenium has 4 different components that are:

  • Selenium IDE (Integrated Development Environment).
  • Selenium 1.0 (Also called as Remote Control).
  • Selenium 2.0/3.0 (Also called as Webdriver).
  • Selenium GRID.

The latest version of selenium is 3.4.0 which can be downloaded from http://www.seleniumhq.org/download/

Selenium supports multiple operating systems, multiple browsers, and multiple languages. It gives you the flexibility to choose the language in which you have expertise. Following is the list:

  • Multiple Programming Languages: Java, Python, PHP, Ruby, Perl, JavaScript
  • Multiple Operating Systems: Android, iOS, Windows, Linux, Mac, Solaris
  • Multiple Browsers: Chrome, Internet Explorer, Edge, Opera, Safari etc.

Selenium Tool is known for its performance and execution speed. Let’s discuss the different components of Selenium:

 

1) Selenium IDE

It is a record and play tool and a plugin for firefox. This plugin is used to create prototypes of tests. Following are the features of this tool:

  • Easy to install.
  • Test Scripts are created by just click on the record button.
  • Can record, edit and debug scripts.
  • The simplest way to learn Selenium syntax.
  • Test Scripts can be imported into multiple languages like Python with Remote Control, Java with Webdriver, Java with Remote Control, Ruby with Remote Control etc.

This plugin can be downloaded from the following URL:

https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/

2) Selenium 1.0 (Remote Control)

This was the first component developed in Selenium Suite. Selenium became famous because of this component. It works in the following manner:

1) The server interprets the code and converts it into javascript and further injected into the browsers.

2) Javascript gets executed in the browser and response is sent back to the server which forwards it to the user.

There were many drawbacks to this tool that is:

  • Confusing commands.
  • Remote Control Server acts as a mediator which makes its execution slower.
  • Use of Javascript

 

Selenium Webdriver (2.0/3.0)

After Selenium RC, Webdriver has come which make its architecture simpler. Now, there is no server. Test Scripts interact directly with the browser. The execution is much faster compared to Selenium Remote Control. Selenium Commands were segregated in different classes which become easy for end user to remember and to implement.

Last year, Selenium has launched a new version that is 3.0 which is much lighter than Selenium 2.0. There is not much change done which impact the end user but multiple were done at the backend. The syntax for loading Firefox has been changed to following:

System.setProperty(“webdriver.gecko.driver”,”path to gecko driver”);

Webdriver driver = new FirefoxDriver;

Selenium Gecko Driver can be downloaded from this URL, the latest version of Gecko Driver is 0.16.1:

 

Selenium GRID

It is used for parallel testing. This component enables us to execute automation framework on different machines placed at the different location. However, all the machines should be connected to a Local Area Network. It can be used with Selenium Remote Control as well as with Selenium Webdriver. Please note that Selenium Remote Control classes have been deprecated now. So, we couldn’t use this component with Selenium Remote Control.