Selenium is increasingly getting popular in the category of test automation tools. It automates the web browsers. If you are looking to automate the testing for mobile website software applications or web application, selenium is the tool. Selenium has 3 main tools: Selenium WebDriver, Selenium IDE, Selenium Grid. This article is about Selenium WebDriver.
A WebDriver is a web automation framework, which executes your tests against different browsers. Selenium is famous open-source web-based automation tool for web applications across different browsers and platforms. Software testing done using selenium tool is called as selenium testing. Selenium WebDriver drives a browser natively as a real user for locally or on remote machines. Selenium WebDriver is designed as concise and compact programming interface. By a simple setup, the Selenium WebDriver can be used with all major browsers. Automate real interactions in a Firefox, safari, Edge web browsers. Selenium WebDriver has both language bindings and the implementation of the individual browser, controlling code which is commonly referred as WebDriver.
The difference between Selenium RC and WebDriver:
Before the WebDriver, there was another selenium automation tool called as Selenium Remote Control. Both WebDriver and Selenium Remote Control have same features. Both of them allow you to use a programming language in designing your test scripts. They both run your tests against different browsers. The architecture of selenium WebDriver is simpler than selenium RC architecture. It controls all the browsers from the OS level. We need programming language’s IDE and a Browser. Selenium WebDriver is faster than the Selenium RC as it speaks directly to the browser and uses browser’s own engine to control it. WebDriver interacts with different page elements in more realistic way. Selenium WebDriver’s API is simpler than selenium RC. It does not contain redundant and confusing commands. WebDriver can support the Headless HTML unit browser which is called as invisible browser as it is GUI less. Whereas Selenium RC cannot support Headless Html unit browser, it needs real visible browser to operate on.
As discussed selenium WebDriver permits to choose a programming languages of choice to create a test scripts. It is an advancement over selenium RC to overcome few limitations. Selenium WebDriver is not capable of handling window components, but this drawback can be overcome by using tools like Sikuli, Auto etc.
Selenium WebDriver Architecture is made of four components:
- Selenium Client library
- JSON wire protocol over HTTP
- Browsers Drivers
Selenium Client libraries/Languages Bindings: Selenium provides support to multiple libraries as Ruby, Python and Java etc. as language bindings which have been developed by selenium developer to provide compatibility for multiple languages. We can download all the supported language bindings of choice from official website of selenium.
Browsers Driver: Selenium has drivers which are specific to each browser and without revealing the internal logic of browser functionality, the browser’s driver interacts with the respective browser by establishing a secure connection. These browsers always specify for test cases what language is to be used.
Browsers: There are multiple browsers like chrome, Firefox, safari that can be used.
Benefits of selenium WebDriver are:
- It is a most popular open-source tool and is easy to get started for testing based applications.
- Supports multiple operating system like windows, mac, Linux etc. It provides compatibility for the range of languages including python, java etc.
- Selenium WebDriver supports the execution of test scripts faster.
- It also provides support for modern browsers like Firefox, opera etc.
- It follows the W3C standards.