Book Image

Selenium WebDriver Quick Start Guide

By : Pinakin Chaubal
Book Image

Selenium WebDriver Quick Start Guide

By: Pinakin Chaubal

Overview of this book

Selenium WebDriver is a platform-independent API for automating the testing of both browser and mobile applications. It is also a core technology in many other browser automation tools, APIs, and frameworks. This book will guide you through the WebDriver APIs that are used in automation tests. Chapter by chapter, we will construct the building blocks of a page object model framework as you learn about the required Java and Selenium methods and terminology. The book starts with an introduction to the same-origin policy, cross-site scripting dangers, and the Document Object Model (DOM). Moving ahead, we'll learn about XPath, which allows us to select items on a page, and how to design a customized XPath. After that, we will be creating singleton patterns and drivers. Then you will learn about synchronization and handling pop-up windows. You will see how to create a factory for browsers and understand command design patterns applicable to this area. At the end of the book, we tie all this together by creating a framework and implementing multi-browser testing with Selenium Grid.
Table of Contents (10 chapters)

Drivers in Selenium

We will now take a look at the various drivers that are available in Selenium and their usage.

Remote WebDriver

Remote WebDriver is the implementation class of the WebDriver interface. Apart from WebDriver, it also implements the interfaces of TakesScreenShot, findBy, JavaScriptExecutor, and so on.

Mobile drivers

All modern web apps have implementations for mobile devices. The two most popular operating systems in mobile devices are Android and iOS. Selenium has implementations for Android and iPhone, that is, AndroidDriver and IODDriver. Both of these are direct implementations of WebDriver.

Headless browsers

Headless browsers are those that do not have a graphical user interface (GUI). Everything runs in the background. When a test is executed with a headless browser, no screen is displayed to the user. Two popular headless browsers are HTMLUnit and Phantom JS. Chrome now supports the HTMLUnit browser.

Why do we need headless browsers?

Suppose that Selenium tests have to be executed on an OS which does not have a GUI like Linux or when multiple browser behaviors have to be simulated on just one machine. The advantage of a headless browser is that the resources utilized by the test are minimal. A scenario where you can use these browsers is for test data creation. In these situations, there is no special need to display the screen to the user.