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 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 to Selenium WebDriver

WebDriver

is one of the most powerful and popular tools of Selenium toolkit. WebDriver comes as an extended version of 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.

WebDriver 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 browsers; 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. The 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 wishes to execute test scripts on the remote machine.
  • When the user wishes to execute test scripts on HtmlUnit Driver.
  • When the user wishes 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 tools.

Features of Selenium WebDriver

Browser Compatibility

Selenium webdriver tutorial 2

WebDriver supports a 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 for 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 the 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 are 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 the mobile era, WebDriver API has also matured and introduced some of the key technologies to enter this horizon. WebDriver enables the 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 a 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 the 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 a browser without any external intervention.

Next Tutorial #9: In the next tutorial, we would be discussing the installation procedure to get started with WebDriver initiating from the scratch. We would also be discussing 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 on its official website.

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


38 thoughts on “Introduction to Selenium WebDriver – Selenium Tutorial #8”

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

  2. Hi,

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

    thanks.

  3. @Swapnil

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

    Keep reading & keep learning..

  4. @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.

  5. 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

  6. 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.

  7. 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.

  8. 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

  9. 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.

  10. 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

  11. 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.

  12. Hi, i have some issues can anyone help me pls. I am trying to test an application which has login, search for flight and logout. Issues is Web Driver open the home page but can’t enter credentials while all command is correct. Can anyone please resolved the issues .
    Thanks in advanced.

  13. Thank you so much for sharing your knowledge. It will help us to solving problems related to automation testing using selenium web Driver.

Leave a Comment