Book Image

Selenium Fundamentals

By : Diego Molina
Book Image

Selenium Fundamentals

By: Diego Molina

Overview of this book

<p>There are several challenges while writing automated tests for web applications: you have to select an adequate test framework, use appropriate selectors to avoid flaky tests, and build a good testing framework. Selenium Fundamentals helps you tackle these challenges and provides you with the knowledge to overcome hurdles in testing by developing stable and effective testing solutions. You’ll learn the complete process of automated testing, such as configuring your environment, creating and running automated tests, analyzing reports, and troubleshooting errors by using a Selenium Grid. </p><p> </p><p>To start with, you’ll understand the importance of automating tests. You’ll then move on to understanding how to choose the best selectors for navigating through your web applications while highlighting best practices and techniques. </p><p> </p><p>After writing your first tests, you’ll cover the object model to create your own advanced test cases. You’ll analyze a test report, track timing errors, and separate real issues from flaky tests. In addition to this, you’ll learn how to configure and connect to a local grid, a network grid, and a third-party service. </p><p> </p><p>By the end of the book, you will have the skills you need to run automated tests on your own web applications.</p>
Table of Contents (12 chapters)

Explicit Waits

Implicit waits work under the assumption that the element(s) we are searching for might take some time to appear on the DOM. Hence, an implicit wait will wait for every element that is part of our automation script.

On the other hand, explicit waits allow us to control the automation script flow for one or more specific elements, and under predefined conditions. The WebDriverWait and ExpectedConditions classes are used for setting explicit waits. The following lines set a 5-second explicit wait until the title of the page contains the string "Explicit". Note that if the title is updated before the 5-second waiting time, the automation script will continue to the next step:

WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.titleContains("Explicit"));

It is important to highlight that explicit waits act only...