Book Image

Enhanced Test Automation with WebdriverIO

By : Paul M. Grossman, Larry C. Goddard
Book Image

Enhanced Test Automation with WebdriverIO

By: Paul M. Grossman, Larry C. Goddard

Overview of this book

This book helps you embark on a comprehensive journey to master the art of WebdriverIO automation, from installation through to advanced framework development. You’ll start by following step-by-step instructions on installing WebdriverIO, configuring Node packages, and creating a simple test. Here you’ll gain an understanding of the mechanics while also learning to add reporting and screen captures to your test results to enhance your test case documentation. In the next set of chapters, you’ll delve into the intricacies of configuring and developing robust method wrappers, a crucial skill for supporting multiple test suites. The book goes beyond the basics, exploring testing techniques tailored for Jenkins as well as LambdaTest cloud environments. As you progress, you’ll gain a deep understanding of both TypeScript and JavaScript languages and acquire versatile coding skills. By the end of this book, you’ll have developed the expertise to construct a sophisticated test automation framework capable of executing an entire suite of tests using WebdriverIO in either TypeScript or JavaScript, as well as excel in your test automation endeavors and deliver reliable, efficient testing solutions.
Table of Contents (20 chapters)
16
Epilogue
Appendix: The Ultimate Guide to TypeScript Error Messages, Causes, and Solutions

Reducing page object maintenance with generic selectors

Before we get into the advanced concepts of making our object flexible like plastic, let’s begin with several ways we can write better selectors. A robust selector is extremely important to reduce the maintenance of your test automation framework. We will move beyond exact matches to use substring matches to be sure that we can find an element even if it changes slightly.

We begin with a simple question. Which is better—XPath or CSS? There is a common idea that CSS is the preferred method for writing a selector because it executes faster. While this may be true, the speed difference today is minimal. I would rather spend a few more milliseconds finding an element over the minutes spent repeatedly updating object selectors. In addition, CSS selectors are harder to write syntactically. Furthermore, CSS selectors are not as flexible when we need to find one element relative to another—for example, locating...