Book Image

Mastering Selenium WebDriver 3.0 - Second Edition

Book Image

Mastering Selenium WebDriver 3.0 - Second Edition

Overview of this book

The second edition of Mastering Selenium 3.0 WebDriver starts by showing you how to build your own Selenium framework with Maven. You'll then look at how you can solve the difficult problems that you will undoubtedly come across as you start using Selenium in an enterprise environment and learn how to produce the right feedback when failing. Next, you’ll explore common exceptions that you will come across as you use Selenium, the root causes of these exceptions, and how to fix them. Along the way, you’ll use Advanced User Interactions APIs, running any JavaScript you need through Selenium; and learn how to quickly spin up a Selenium Grid using Docker containers. In the concluding chapters, you‘ll work through a series of scenarios that demonstrate how to extend Selenium to work with external libraries and applications so that you can be sure you are using the right tool for the job.
Table of Contents (15 chapters)

StaleElementReferenceException

This is an exception that you will quite often see if you work with AJAX or JavaScript-heavy websites where the DOM is continuously being manipulated.

You are probably used to seeing code like this:

WebElement googleSearchBar = driver.findElement(By.name("q")); 

The WebElement object that you have created is actually a reference to a specific element in the DOM; think of it as a phone number that you call to talk to that element:

When the DOM is manipulated and the old element is destroyed, that reference no longer links to an element in the DOM and it becomes stale. Using our phone number analogy, this is where the phone line is disconnected. You can keep calling that number, but it will not ring anymore; you'll just get a message telling you that the phone number is not valid:

This can get very confusing when the element we have...