Selenium WebDriver alias Selenium 2 is a test tool that allows you to write automated web application UI tests in any programming language against any HTTP website.
Selenium WebDriver is the latest and most popular flavor of Selenium which allows the test developers to write tests using their favorite language to test on different browsers.
Pre-requisites for Selenium WebDriver:
- Selenium IDE - Please go through all the Selenium IDE posts (i.e. from Post#1 What is Selenium? to Post#27 Finding Locators for UI elements using the Selenium IDE's recording feature )
- Java - Please go through all the 'Java for Selenium' posts (i.e. from Post#28 Java for Selenium to Post# 157 Using lastIndexOf( ) method with StringBuffer )
- Eclipse IDE - Please go through Eclipse IDE posts (i.e. from Post#8 Install Eclipse IDE to Post#10 How to create Projects in Eclipse IDE? )
What is Selenium WebDriver ?
- Selenium WebDriver allows you to write Automation tests in any supported programming language (say Java).
- Selenium WebDriver is also known as Selenium 2.
- Selenium WebDriver is an open source and free tool.
- Selenium WebDriver is the main Selenium Project currently (i.e. Selenium RC or Selenium 1 was the main project earlier). But Selenium 2 still runs Selenium 1's Selenium RC interface for backwards compatibility.
- Selenium 2 can run Selenium RC command and the concept is known as Backed Selenium.
- Selenium WebDriver has support for almost all browsers
- Selenium WebDriver has support for several programming languages like Java, C#, Ruby, Python, Pearl, Javascript and PHP)
How Selenium WebDriver works ?
In order to know how Selenium Web Driver works:
- First you have to understand how the Selenium RC works by going through the Selenium RC Post # 1
- Next find out what is the difference between Selenium RC and Selenium WebDriver by going through the below content.
Difference between Selenium WebDriver and Selenium RC:
In Selenium RC we have to use Selenium RC Server as mediator between the Automation Code and the Browser. Generally Browsers wont allow any external code to get executed on any Website they are holding. Since our Selenium Automation code is treated as external code by the Browsers, we required a kind of mediator who can communicate with the browsers, so that the browser can allow the execution of Selenium Automation code on the website they are holding. Hence Selenium RC Server acts as a proxy to allow the Selenium Automation Code to get executed on the Application Under Test in Browsers. So in Selenium RC we have to make Selenium command calls to the browsers via Selenium RC Server.
But in Selenium WebDriver, we don't require any Server which acts as a mediator. We can make direct Selenium command calls to the browsers.This is possible because of the Browser drivers used in the Selenium Automation code. There is a separate driver for each browser. Suppose if we want to run our Selenium Automation code on Internet Explorer browser, we have to the use the Internet Explorer
WebDriver. Here WebDriver of browser will communicate with the browser. We use WebDriver API (Application Programming Interface) code in the our Selenium Automation Code and hence our Final Automation Tests containing the WebDriver API code can directly communicate with the browsers.
If your browser and automation tests will all run on the same machine, then your tests only use the WebDriver API, you do not need to run the Selenium-Server ( i.e. WebDriver will run the browser directly).
Are there any cases where you have to use Selenium-Server with Selenium-WebDriver ?
Yes. As we have to use Selenium-Grid concept for distributing our tests over multiple machines and run. In order to run the browser on a remote machine, we have to use Selenium-Server for communicating with the browsers on remote machines and running the tests on remote machines.
No comments:
Post a Comment