If you are interested in browser automation, you probably have heard of Puppeteer.
Puppeteer is a NodeJS library, which connects with Chromium browsers through the DevTools protocol.
Puppeteer will send the same messages back and forth just like the Chrome DevTools do. By doing that, it allows Puppeteer to control and interact with the Chrome browser.
There’s some advantages to using this method instead of using Selenium (WebDriver):
- It is faster, because of the DevTools protocol which is natively supported. And because it’s using WebSockets instead of HTTP requests (which WebDriver uses).
- The default mode is headless, which means no UI is visible. If you are automating your browser, chances are you don’t really need to see the browser. If you are doing UI tests, you might want to see the browser, in which case Puppeteer has a ‘headful‘ mode as well.
- Regular updates. Puppeteer is maintained by Google. This means it will definitely keep up with Chrome and any new features.
Ready to get started? I can recommend reading the article Puppeteer Testing which will guide you through setting up and configuring Puppeteer and a test framework such as Jest, WebDriverIO or PyTest.
In case you’re looking for an alternative solution, I can recommend Playwright. It offers the same set of features, uses the same technology under the hood and has broader browser support.