What is Selenium?
Selenium is one of the most widely used open source Web UI (User Interface) automation testing suite. Selenium supports automation across different browsers, platforms and programming languages.
Selenium can be easily deployed on platforms such as Windows, Linux, Solaris and Macintosh. Moreover, it supports OS (Operating System) for mobile applications like iOS, windows mobile and android.
Selenium supports a variety of programming languages through the use of drivers specific to each language. Languages supported by Selenium include C#, Java, Perl, PHP, Python and Ruby. Currently, Selenium Web driver is most popular with Java and C#. Selenium test scripts can be coded in any of the supported programming languages and can be run directly in most modern web browsers. Browsers supported by Selenium include Internet Explorer, Mozilla Firefox, Google Chrome and Safari. Selenium can be used to automate functional tests and can be integrated with automation test tools such as Maven, Jenkins, & Docker to achieve continuous testing. It can also be integrated with tools such as TestNG, & JUnit for managing test cases and generating reports.
- Selenium Integrated Development Environment (IDE)
- Selenium Remote Control (RC)
- Selenium Grid
- Selenium WebDriver
Selenium IDE (Selenium Integrated Development Environment)
Selenium IDE is the simplest and easiest of all the tools within the Selenium Package. Its record and playback features make it exceptionally easy to learn with minimal acquaintances to any programming language. With several advantages, a few disadvantages accompanied Selenium IDE, thus making it inappropriate to be used in case of more advanced test scripts.
Selenium RC (Selenium Remote Control)
Selenium RC is a tool written in Java to allow a user to construct test scripts for a web-based application in any programming language he/she chooses. Selenium RC came as a result to overcome the various disadvantages incurred by Selenium IDE or Core. Loopholes and restrictions which were imposed while using Selenium Core made it difficult for the user to leverage the benefits of the tool to its totality. Thus it made the testing process a cumbersome and a far-reaching task.
With selenium RC, the life of a tester has always been positive and favorable until the emerging trends raised a demand to execute the same or different test scripts on multiple platforms and browsers concurrently so as to achieve distributed test execution, testing under different environments and saving execution time remarkably. Thus, catering these requirements Selenium Grid was brought into the picture.
Selenium Grid was introduced by Pat Lightbody in order to address the need for executing the test suites on multiple platforms simultaneously.
Founded by Simon Stewart in 2006, Selenium WebDriver was the first cross platform testing framework that could control the browser from OS level. In contrast to IDE, Selenium WebDriver provides a programming interface to create and execute test cases. Test cases are written such that, web elements on web pages are identified and then actions are performed on those elements.
Selenium WebDriver is the most important component of Selenium Tool’s Suite. The latest release “Selenium 2.0” is integrated with WebDriver API which provides a simpler and more concise programming interface. Selenium WebDriver was first introduced as a part of Selenium v2.0. The initial version of Selenium i.e Selenium v1 consisted of only IDE, RC and Grid. However, with the release of Selenium v3, RC has been deprecated and moved to legacy package
WebDriver is an upgrade to RC because it is much faster. It is faster because it makes direct calls to the browser. RC on the other hand needs an RC server to interact with the web browser. Each browser has its own driver on which the application runs. Selenium WebDriver is not capable of handling window components, but this drawback can be overcome by using tools like Sikuli, Auto IT, etc.
Benefits of Selenium WebDriver :
• It is one of the most popular Open-Source tools and is easy to get started with for testing web-based applications. It also allows you to perform cross browser compatibility testing.
• Supports multiple operating systems like Windows, Mac, Linux, Unix, etc.
• It provides compatibility with a range of languages including Python, Java, Perl, Ruby, etc.
• Provides support for modern browsers like Chrome, Firefox, Opera, Safari and Internet Explorer.
• Selenium WebDriver completes the execution of test scripts faster when compared to other tools
• More Concise API (Application Programming interface) then Selenium RC’s
• It also provides compatibility with iPhone Driver, HtmlUnitDriver and AndroidDriver