What this book covers
Chapter 1, The Utility Belt – Tools Every Superhero SDET Needs, provides an overview of the initial preparation tools that need to be installed, including Node, Yarn, and the VS Code IDE configurations.
Chapter 2, Fortress of Solitude – Configuring WebdriverIO, covers setting up the project workspace folder with an overview of the WDIO install options to run our first test.
Chapter 3, Cybernetic Enhancements – WebdriverIO Config and Debug Tips, provides an in-depth look at the package file and WDIO configuration options for both Mac and Windows with the concept of a function wrapper for enhanced logging.
Chapter 4, Super Speed – Time Travel Paradoxes and Broken Promises, provides an in-depth look at the challenges of multi-threaded execution that are resolved with async and await commands.
Chapter 5, Alter Egos – Why Do We Need Function Wrappers?, introduces the helpers file, the Switchboard object, a smart click()
wrapper that leverages the pageSync()
function and resolves speed-related timing issues.
Chapter 6, The setValue Wrapper – Entering Text and Dynamic Data Replacement, introduces the setValue()
wrapper with dynamic data tags, which provides offset dates in multiple formatting.
Chapter 7, The Select Wrapper – Choosing Values in Lists and Combo Boxes, introduces the select()
wrapper, which handles multiple types of drop-down elements and advanced scrolling to avoid object overlap errors.
Chapter 8, The Assert Wrapper – The Importance of Embedded Details, introduces a wrapper for soft asserts with custom Allure reporting with screenshots.
Chapter 9, The Ancient Spell Book – Building the Page Object Model, introduces page classes with xPath and CSS locators and atomic actions.
Chapter 10, Increased Flexibility – Writing Robust Selectors and Reducing Maintenance, provides a deep dive into advanced xPath tips and self-healing strategies to reduce maintenance.
Chapter 11, Echo Location – Skipping the Page Object Model, enhances the three basic actions to find elements by text alone with a relative element location.
Chapter 12, Superhero Landing – Setting Up Flexible Navigation Options, introduces concepts for running tests in different test environments where elements may have been removed or do not yet exist without failing.
Chapter 13, The Multiverses – Cross-Browser and Cross-Environment Testing, provides an introduction to the risks and rewards of expanding coverage with horizontal testing of multiple operating systems and browsers.
Chapter 14, The Time Traveler’s Dilemma – State-Driven End-to-End User Journeys, discusses advanced concepts to create end-to-end tests that do not rely on any specific page following another with custom decision points and error detection.
Chapter 15, The Sentient Cape – Running Tests in a CI/CD Pipeline with Jenkins and LambdaTest, brings test automation back to the manual testers who can call for complex artifacts to be produced in the cloud with a simple descriptive statement and access video capture replay.
Appendix, The Ultimate Guide to TypeScript Error Messages, Causes, and Solutions, provides an extensive collection of error messages, potential causes, and solutions gathered from years of project development.