Google+

History of Selenium

Selenium 3 is the latest version of Selenium, which is released into the market on Oct 13, 2016.

Hence, below are the different Selenium versions that got release into the market so far:

  • Selenium 1 
  • Selenium 2
  • Selenium 3



As we got a high level idea on the different versions of Selenium, lets find out how these versions got evolved by knowing the history of Selenium.


History of Selenium:


The history of Selenium started with Selenium Core as below:

Selenium Core

Selenium was created by Jason Huggins in 2004. To avoid repeated execution of test cases day by day, he created a javascript program and named it as JavaScriptRunner which was later renamed as Selenium core. Over a period of time, Applications were only allowing the internal JavaScript programs by treating the external JavaScript programs as a security break. This became a drawback for Selenium core as it uses JavaScript programs to interact with the Application under test. To overcome this problem while testing using Selenium core, application testers used to install the Selenium Core’s JavaScript programs into the Application code’s local copy.

Selenium RC

To overcome the drawback of Selenium core, Paul Hammant has created a proxy server named ‘Selenium RC’ to trick the Application under test that the JavaScript programs are in the same local machine where the  Application is residing, even though it is not. The drawback of Selenium RC approach is, we have to use a proxy server named ‘Selenium RC’ to communicate between the Application code and Automation code.

Selenium Grid

Selenium Grid was developed by Patrick Lightbody, to reduce the time of Automation scripts execution by running the scripts in parallel on different machines. i.e. Instead of executing all the scripts on a single machine, to reduce the time of execution, all the scripts will be divided across different machines and executed simultaneously.

Selenium IDE

Selenium IDE was developed by Shinya Kasatani, to record the tests like recording a video and execute the recorded tests like playing a video. Hence Selenium IDE is a record and playback tool. Selenium IDE is released into the market as a Firefox add-on/plugin/extension and can be installed on the top of the default Firefox browser. Once installed, we can simply record the tests on firefox browser and playback when required.

Selenium 1

Selenium 1 is nothing but the combination of Selenium IDE, Selenium RC and Selenium Grid.


Selenium WebDriver

Selenium WebDriver was created by Simon Stewart in 2006. As the browsers and web applications were becoming more powerful and not allowing external JavaScript programs. While Selenium RC was tricking the Browser that Selenium core’s Java Script program is part of the Application code using the Proxy server as a communicator, but Selenium WebDriver used the concept of native drivers to interact with the Application under test and hence eliminated the need for a proxy server. Selenium WebDriver got the support from the largest vendors of the Browsers like Firefox, Chrome, Internet Explorer, Opera and Safari to make Selenium a native part of their browsers. Hence the browsers wont treat Selenium’s JavaScript programs as an external. The native drivers available for supported browsers are FirefoxDriver, ChromeDriver, InternetExplorerDriver, SafariDriver and OperaDriver. The development of this drivers is done by Selenium guys, even though the drivers are native to Browsers.

Selenium 2

Later Selenium 1 (i.e. Selenium IDE + Selenium RC + Selenium Grid) merged with Selenium WebDriver to make Selenium more powerful and got released into the market as Selenium 2 on July 8th, 2011. Earlier to this merger, there used to be separate teams for developing Selenium RC and Selenium WebDriver. As these two teams identified that Selenium can become more powerful on merging Selenium RC and Selenium WebDriver, and finally released the merged version of Selenium as Selenium 2 into the market.


i.e. Selenium 2 is the combination of Selenium 1 and Selenium WebDriver.



Selenium 3

Selenium 3 is the latest version on Selenium and is released into the market on Oct 13, 2016.

Change#1 - The big change in this version is that the Selenium RC which is part of Selenium 2 is dropped out in Selenium 3. Selenium RC which was internally implementing Selenium Core’s JavaScript program libraries is now replaced with the backed WebDriver API implementation. i.e. What ever the tasks that can be performed only by Selenium RC’s JavaScript implementation, can now be performed using the backed WebDriver API implementation which is more flexible. There is no change in the WebDriver implementation from Selenium 2 to Selenium 3. Only the Selenium RC JavaScript libraries got replaced with backed WebDriver API implementation from Selenium 2 to Selenium 3. There is less impact due to this change, as most of the users are writing tests in WebDriver, but there is significant impact on the users who are writing tests in Selenium RC, as Selenium RC wont be supported by Selenium team in future releases and hence should migrate to WebDriver for future support.



Change#2 - Another big change in Selenium 3 is that, we have to use Mozilla’s gecko driver for running Selenium Automation scripts on Firefox browser. Till Selenium 2, development and support of selenium driver for Firefox is provided by Selenium guys using FirefoxDriver class in Selenium, but from Selenium 3 the development and support for selenium driver for Firefox will be provided by Mozilla Firefox Browser vendor using the gecko driver. Hence from Selenium 3, we have to use gecko driver in order to execute the Selenium Automation scripts on Firefox browser.

Change#3 - Apple company will be providing the support for Safari Driver for executing the Selenium Automation scripts on Safari browser of macOS Sierra operating system.

Change#4 - Microsoft company will be providing the support for Edge Driver for executing the Selenium Automation scripts on Edge browser.

Conclusion:

Hence major changes in Selenium 3 from Selenium 2 is the dropping out of Selenium RC JavaScript libraries implementation by replacing them with Selenium WebDriver’s API implementation. And the browser vendors have taken the ownership to support the drivers which are required to run the automation scripts on the browser instead of selenium guys supporting their development. i.e. gecko driver is supported by Mozilla, safari driver is supported by Apple and edge driver is supported by Microsoft.

No comments: