Welcome to the Headless Automation Guides!

We gave theheadless.dev a new home and will publish fresh content around Playwright & Puppeteer in this guide.

Learn Playwright & Puppeteer

Tips, tricks, and in-depth guides from the trenches. Learn how to use the popular open-source browser automation frameworks, Playwright and Puppeteer. This guide provides detailed information and examples how you can write high-quality scripts for testing and synthetic monitoring.

Getting Started

Have a look at how Playwright & Puppeteer work, what similarities they share, as well as the noticeable differences.

What is Playwright

What is Playwright

Built on the experience of Puppeteer, Microsoft's Playwright offers unique features.

Read more
What is Puppeteer?

What is Puppeteer?

Learn what's behind the popular Node.js library from Google and the use cases it serves. We have stopped supporting Puppeteer in newer runtimes after 2022.02.

Read more
Set up Playwright and Puppeteer

Set up Playwright and Puppeteer

Prepare to write your first scripts and learn how the setup works.

Read more

Diving Deeper

Playwright and Puppeteer are extremely powerful and serve a wide range of use cases. We have collected in-depth articles for important scenarios and challenging automation flows.

End to end scenarios

End to end scenarios

Learn how to script complete user scenarios from signup to checkout.

Read more
Network & state

Network & state

Learn how to use cookies to set state and simplify your scripts.

Read more
Best Practices

Best Practices

Learn about guidelines to write quality automation scripts.

Read more
Performance

Performance

Learn how you can use Playwright & Puppeteer to measure page performances.

Read more

Basic Navigation

Working with navigation and waits are the fundamental of any script.

Read more

Request Interception

Learn how to control HTTP requests and responses.

Read more

Basic Selectors

Working with selectors is key for writing high quality scripts.

Read more

You can contribute to this documentation by editing this page on Github