Seleniun WebDriver Introduction
- Selenium WebDriver is the essential tool of Selenium Tool Suite because it can directly communicate the browser without any server.
- Selenium WebDriver is a browser automation framework that accepts commands and sends them to the browser.
- It was developed by JSON Huggins and Simon Stewart from Google Company in 2008.
- Web driver is implemented through a browser-specific driver.
- Selenium WebDriver comes under Selenium version 2, which provides a simple and brief programming interface.
- Selenium2= WebDriver+ Selenium 1.0, where selenium 1.0 version includes Selenium IDE, Selenium RC and Selenium Grid.
- WebDriver is a collection of core java libraries and interfaces.
- The Selenium WebDriver test scripts can be developed by any supported programming languages and can be run directly in web browsers.
- The programming languages that are supported by WebDriver include C#, Java, Perl, PHP, Python, and Ruby.
WebDriver execution is faster as compared to Selenium RC because selenium RC needs a selenium server to interact with the browser whereas WebDriver directly interacts with the web browser without any need of selenium server.
Before going further to the concepts of Selenium WebDriver, we should know any supported programming languages. Presently, Selenium WebDriver is in demand with Java and C#.
Here, we are performing a Selenium WebDriver with the java programming language.
To learn basic and advanced concepts of java and C# programming language, you can refer to the below links:
Java Tutorial: https://www.tutorialandexample.com/java-tutorial
C# Tutorial: https://www.tutorialandexample.com/csharp-tutorial
Firefox (Gecko Driver) WebDriver has a built-in implementation. And we need plug-ins to other browsers for specific drivers to communicate and run the test scripts.
Browsers supported by WebDriver is as following:
- Google Chrome Browser
- Mozilla Firefox
- Internet Explorer Browser
- Safari Browser
- Microsoft Edge Browser
Architecture of Selenium WebDriver
There are four necessary components of Selenium WebDriver Architecture:
- Selenium Language Bindings
- JSON Wire Protocol
- Browser Drivers
- Real Browsers
Selenium Language Bindings/Client libraries:
Selenium supports multiple languages like Java, Ruby, Python, etc.; Developers have developed language bindings to allow Selenium to support various libraries. Once you go through the test (the complete selenium code), which we have written, that has to be converted into JSON format.
We can download the supported language bindings with the help of the below link.
JSON Wire Protocol:
Note: Each browser contains a separate browser driver.
Selenium WebDriver are specific to each browser and establish a secure connection with the browser without disclosing any internal functionality of the browser.
The browser driver communicated with its respective browser and executed the command by interpreting JSON, which is a receiver on the browser. And response will go back in the form of http.
While executing a test script with the help of WebDriver, the following activities performed internally:
- For each Selenium command, the HTTP request generated and sent to the browser driver.
- The driver receives the HTTP request with the help of the HTTP server.
- The HTTP Server performed all the steps and instructions which are executed on the browser.
- In the last activities, the execution status sent back to the HTTP Server.
The browser driver receives a response from the browser and JSON response to the client.
Browsers supported by Selenium WebDriver:
- Internet Explorer
- Mozilla Firefox
- Google Chrome
- Microsoft Edge
Selenium Web-driver Topics
- Selenium WebDriver introduction
- Characteristics of Selenium WebDriver
- Difference Between Selenium RC and web driver
- Installation steps of Selenium WebDriver
- WebDriver Class Diagram/ Architecture
- WebDriver Control Commands
- Browser Control
- Navigation Control
- Web element Control
- Operational Control
- Data capture Control
- Verification Control
- WebDriver working with multiple browser
- WebDriver working with chrome browser
- WebDriver working with Firefox browser
- WebDriver working with internet explorer browser
- WebDriver working with Microsoft Edge browser
- WebDriver locator
- Id Locator
- Name Locator
- Class name Locator
- Xpath Locator
- XPath function
- XPath axes
- Link text Locator
- Partial link text Locator
- Tag name Locator
- Css Selector
- Tag and Id
- Tag and Class
- Tag and Attribute
- Tag, class, and Attribute
- Sub string matches
- Web driver wait statements
- Drop down handling
- Mouse and keyboard controls
- Drag and drop Event Handling
- Window Handling: New tab/new window
- Alert pop up Handling
- Check box Handling
- Radio button Handling