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 code with common objects and methods

Reducing code duplication and improving maintainability can be achieved by leveraging common objects and methods in your Page Object pattern. Some strategies to achieve code reduction are set out here:

  • Base page class: Create a base page class that contains common objects and methods shared across multiple pages. This base class can encapsulate elements and behaviors that are common to multiple pages, such as a Home button, Halloween Party button, and then a Find My Candy! button, to reduce duplication:
Figure 9.1 – Header of CandyMapper party page website with links common to all pages

Figure 9.1 – Header of CandyMapper party page website with links common to all pages

These elements appear in the header of every page of the website. So, it makes sense to declare them in the top-level page class and extend it to all other pages.

Figure 9.2 – Header page of the Candymapper landing page with three  common links

Figure 9.2 – Header page of the Candymapper landing page with three common links

If the selectors were in...