Book Image

UI Testing with Puppeteer

By : Dario Kondratiuk
Book Image

UI Testing with Puppeteer

By: Dario Kondratiuk

Overview of this book

Puppeteer is an open source web automation library created by Google to perform tasks such as end-to-end testing, performance monitoring, and task automation with ease. Using real-world use cases, this book will take you on a pragmatic journey, helping you to learn Puppeteer and implement best practices to take your automation code to the next level! Starting with an introduction to headless browsers, this book will take you through the foundations of browser automation, showing you how far you can get using Puppeteer to automate Google Chrome and Mozilla Firefox. You’ll then learn the basics of end-to-end testing and understand how to create reliable tests. You’ll also get to grips with finding elements using CSS selectors and XPath expressions. As you progress through the chapters, the focus shifts to more advanced browser automation topics such as executing JavaScript code inside the browser. You’ll learn various use cases of Puppeteer, such as mobile devices or network speed testing, gauging your site’s performance, and using Puppeteer as a web scraping tool. By the end of this UI testing book, you’ll have learned how to make the most of Puppeteer’s API and be able to apply it in your real-world projects.
Table of Contents (12 chapters)

Chapter 6: Executing and Injecting JavaScript

In the past few chapters, we learned about most of the basic Puppeteer features, from creating a browser and a page correctly, to finding elements and interacting with them.

Now it's time to get into more powerful tools. In this chapter, we will see how Puppeteer gives us the ability to execute JavaScript code in the browser.

It might sound like a hack or a last resort tool. Sometimes it is. But it is also a tool that will help us perform actions that are not provided by the Puppeteer API.

The communication between the code being executed on the Node side and the code being executed in the browser can sometimes be tricky. We will learn how to communicate with both sides efficiently.

As we did in the previous chapter, we will add another tool to our toolbox. We are going to run our code on Checkly.

We will cover the following topics in this chapter:

  • Executing JavaScript code
  • Manipulating handles with JavaScript...