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)

Introducing Headless browsers

What is a headless browser? No, it's not something from a horror movie. A headless browser is a browser that you can launch and interact with using a particular protocol over a particular communication transport, with no UI involved. This means that you will have one active process (or many processes, as we know how browsers are these days), but there will be no "window" for you to interact with the browser. I think that "windowless browser" would have been a more accurate name.

Available headless browsers

Both Chromium and Firefox support headless browser mode. It's important to mention that, at the time of writing this book, Firefox's headless mode was still experimental. That might sound bad, compared with the six browsers Selenium offers (https://www.hardkoded.com/ui-testing-with-puppeteer/selenium-browsers), but, as you might have noticed, I didn't say Chrome, I said Chromium. Chromium is the engine Chrome...