Introduction to Selenium WebDriver – Selenium Tutorial #8

Introduction to Selenium WebDriver:

Earlier in this series we published tutorials which focused more on Selenium IDE and its various aspects. We introduced the tool and discussed about its features. We also constructed a few scripts using Selenium IDE and Firebug. From there we moved on to different types of web elements available and their locating strategies.

Now that we are well versed with Selenium IDE, let us move our learning curve towards creating more advanced automation scripts using Selenium WebDriver. WebDriver is one of the most compelling automation testing tools. Let us discuss it in detail.

intro to selenium webdriver

Introduction

WebDriver is one of the most powerful and popular tools of Selenium toolkit. WebDriver comes as an extended version to Selenium RC with superfluous advantages and addresses many of its limitations. WebDriver extends its support to many latest browsers and platforms unlike Selenium IDE. WebDriver also doesn’t require Selenium server to be started prior to execution of the test scripts unlike Selenium RC.

Selenium RC in aggregation with WebDriver API is known as Selenium 2.0. Selenium was so developed in order to support dynamic web pages and Ajax calls. It also supports various drivers to exercise web based mobile testing.

Architecture

WebDriver is a web-based testing tool with a subtle difference with Selenium RC. Since, the tool was built on the fundamental where an isolated client was created for each of the web browser; no JavaScript Heavy lifting was required as we discussed in our very first tutorial.

WebDriver makes direct calls to the Web browser and the entire test script is executed in this fashion. WebDriver uses the browsers support and capabilities to automation.

Selenium webdriver tutorial 1

Unlike Selenium RC, Selenium WebDriver doesn’t essentially require Selenium Server to be started before launching the test script execution. User can leverage the benefit and may or may not require Selenium Server if he/she desires to perform the test execution on the same machine where the browser is residing.

Exceptional Cases when Selenium Server is required with WebDriver:

  • When the user wish to execute test scripts on the remote machine.
  • When the user wish to execute test scripts on HtmlUnit Driver.
  • When the user wish to execute test scripts on multiple platforms.

WebDriver is a purely object oriented framework that works on OS layer. It utilizes the browser’s native compatibility to automation without using any peripheral entity. With the increasing demand it has gained a large popularity, user base and has become by far one of the most extensively used open source automation testing tool.

Features of Selenium WebDriver

Browser Compatibility

Selenium webdriver tutorial 2

WebDriver supports diverse range of web browsers and their versions. It supports all the conventional browsers in addition to some unique and rare browsers like HtmlUnit browser unlike Selenium RC and Selenium IDE.

HtmlUnit Browser executes the test scripts analogous to other browsers except the fact that it runs in the headless mode i.e. GUI-less mode and the user won’t be able to view the test script execution. Said that the test script execution transpires in headless mode, thus the execution speed takes a roll and quickens the execution.

WebDriver also supports web based mobile testing. Thus it provides AndroidDriver and IphoneDriver to back web based mobile testing.

Note: WebDriver doesn’t readily support new browsers.

Language Support

Earlier in the sessions we learned to create scripts using record and playback functionality. We also saw how to create them manually using Selenese commands. While creating such test scripts, we come across various constraints.

Some of the limitations imposed by Selenium IDE are:

------------

  • Doesn’t support iterations and conditional statements
  • Doesn’t support loops
  • Doesn’t support error handling
  • Doesn’t support test script dependency

The above impediments can be troubleshot programmatically. WebDriver facilitates the user to choose within the different programming languages and build their test script in the designated language.

Selenium WebDriver supported programming languages are:

  1. Java
  2. C#
  3. PHP
  4. Pearl
  5. Ruby
  6. Python

Thus the user can pick any one of the programming language (provided the language is supported by WebDriver) based on his/her competency and can start building test scripts.

Speed

When compared to other tools of Selenium suite, WebDriver turns out to be the fastest tool amongst all. The communication is not channelized via any external intervention; rather the tool directly communicates with the browser same as that of any user. Thus, WebDriver takes advantage of the browser’s native compatibility towards automation.

Selenium webdriver tutorial 3

Other tools from Selenium suite like Selenium RC don’t communicate directly with the web browser. Client libraries (test scripts written in any programming language) communicate with Selenium Remote Control Server and Remote Control communicates with a Selenium Core (JavaScript Program) which in turn communicates with the web browser. Hence, this sort of twisted communication results as a hindrance on execution speed.

Selenium webdriver tutorial 4

Drivers, Methods and Classes

WebDriver offers a wide range of solutions to some potential challenges in Automation Testing. It helps us to deal with complex types of web elements like checkboxes, dropdowns, and alerts with the help of dynamic finders.

Selenium webdriver tutorial 5

With the advent of mobile era, WebDriver API has also matured and introduced some of the key technologies to enter this horizon. WebDriver enables user to perform web based mobile testing. It provides two of the essentials drivers to perform web based mobile testing.

  • AndriodDriver
  • IphoneDriver

Moreover, WebDriver API is fairly simple and easy. It doesn’t include repetitious commands. On the contrary, Selenium RC embodies many of the tautological commands.

Conclusion

In this tutorial, we tried to make you acquainted with Selenium WebDriver by outlining its architecture, features and limitations.

Here are the cruxes of this article.

  • Selenium suite is comprised of 4 basic components; Selenium IDE, Selenium RC, WebDriver, Selenium Grid.
  • WebDriver allows user to perform web based automation testing. WebDriver is a different tool altogether that has various advantages over Selenium RC.
  • WebDriver supports a wide range of web browsers, programming languages and test environments.
  • WebDriver directly communicates with the web browser and uses its native compatibility to automate.
  • WebDriver’s support doesn’t only limits in the periphery of traditional user actions. Instead it supports efficient handling mechanisms for complex user actions like dealing with dropdowns, Ajax calls, switching between windows, navigation, handling alerts etc.
  • WebDriver enables user to perform web based mobile testing. To support the same, WebDriver introduces AndroidDriver and IphoneDriver.
  • WebDriver is faster than other tools of Selenium Suite because it makes direct calls to browser without any external intervention.

Next Tutorial #9: In the next tutorial, we would be discussing about the installation procedure to get started with WebDriver initiating from the scratch. We would also be discussing about the diverse range of drivers provided by WebDriver, each catering to different needs.

Till the time our next tutorial is under construction, the readers can visit the Selenium’s official website. A detailed documentation with reference to Selenium WebDriver is implemented at its official website.

About the author: Shruti Shrivastava is currently working as a Senior Test Engineer with 4+ years of automation testing experience. She is an ISTQB certified professional and also an active blogger, always interested in solving testing related problems.

We also have two more authors on this Selenium tutorial’s series to make it complete, useful and relevant.

If you have any specific requests/queries about this or any other tutorial in this Selenium online training series, let us know in comments.

Recommended reading

32 comments ↓

#1 Shilpa Kamble

Thanks for starting with webdriver. was waiting for this.

#2 mpandey

please use the simple english sentence ..

#3 Swapnil

Thanks Shruti & team…good work…guys please try to reduce the frequency in between the two posts…eagerly waiting for next tuts…:-)

#4 racsor

Hi

Is it possible webdriver for IE with multiple versions (for example IE9, IE10)?

thanks

#5 Inderdeep

Hi,

In this series, could you please includes Page Object and Page Factory model with Selenium Webdriver. this topic always confuses me.

thanks.

#6 Shruti Shrivastava

@Swapnil

Thank you for your kind words.
We would surely try to the time span between two posts.

Keep reading & keep learning..

#7 Shruti Shrivastava

@racsor

I didn’t get your question completely but if you are trying to ask whether WebDriver works for IE9 and IE10 i.e. its compatibility with different browser versions.

Yes, WebDriver works for multiple version of multiple browsers.

#8 Kamaljeet kaushik

Very nice and use full tutorials .. thanks

#9 Shruti Shrivastava

@Kamaljeet

Thank you so much for your kind words..

#10 Subrata Paul

Very nice tutorial. Thanks to Shruti and team!

#11 Janardhanan

Thanks Shruti and team for the wonderful information on the most sought after automation tool

#12 Grace

Please is there anyway, this tutorials can be done in video format? I am learn best when I see you do step by step approach in solving problems. I guess what am trying to say is that am a visual and audio learner. seeing is believing, it sticks better that way.

Thanks in advance

#13 Brahma Reddy

Very Nice Article…..

#14 Ashwini

Hi, can any body help me how to do unit testing on a website by using both seleniumIDE &Webdriver in com,mand prompt .

#15 rajat

wants to discuss certain issues i’m facing in selenium

#16 Vijay

@ Rajat – please put your issues as comments and we will answer those.

#17 Tharun

Hi All,

I want to explore API of particular tool(i.e., Splunk) through webdriver, Could anyone please help me out on this.

#18 Satinder

Can I automate angularjs apps with selenium?

#19 rajesh

Can you please make these chapters ( selenium series )available for download as a document or PDF… so that we can take & study whenever we are offline. Reading over the internet makes bit uncomfortable.

#20 Gaurav Khurana

I have checked tutorial on other sites also but Shruti has covered in so much detail that i feel this is the best.

Thanks for writing that much detail about webdriver.

#21 Shweta

I am Fresher.Can I automate angularjs apps with selenium and also the projects of parature and CRM based application.Please help me.

#22 Ramu

Please Help me..
tell me some automation tools used for CRM and CIS applications

#23 Azam

Hi Admin,
As you mentioned that salenium consist selenium IDE ,Selenium RC,Selenium Web Driver and Selenium Grid ,so why you skipped the salenium RC section .You just started the salenium web driver after Salenium IDE.Is webriver merged with RC.Please resolve my quesries.
Thanks

#24 sasi

hi frnds i don’t know selenium Rc & webdriver pls any one can explain for me

How to work

#25 Ramya

Hi,

It would be great if you could provide a tutorial on Galen Framework using Selenium webdriver.

#26 Rajeev Rahi

Guys I just want to say…In webdriver intro it should be mentioned that Webdriver is Interface which has various methods signature and they can be implemented by other classes like FirefoxDriver, chromeDriver etc…
It is also an interview question.

#27 Peter

Selenium webdriver replaces Selenium RC. WD is version2, RC is version 1.

#28 Aruna

Very Very useful

#29 Ram

Thankyou so much….

#30 harshada

Can anyone tell me exact limitations using selenium webdriver?

#31 Mahesh

HI ..I have installed eclipse and configured Selenium webdriver with sample script but its not launching the URL which i am support to navigate instead it is opening a blank browser. Can you please help me on how resolve the issue. Thanks

#32 Aaban

Thank you for sharing your knowledge. I am a fresher to learn selenium testing from Seleniumlabs tutorial. but I found more knowledge from your post. Keep posting.

Leave a Comment