Puppeteer and Selenium are both popular, powerful and widely used solutions for automating web applications.

But which one should YOU use?

The answer depends on your specific needs.

Choosing the wrong option could delay or worse, sabotage your automated testing project.

I'll share my own opinion at the end of this article.

Here are some PROS and CONS for both of them.

Puppeteer

PROS

• Faster than Selenium

• Easy to install

• Written and maintained by the Google Chrome devs

CONS

• Works only with Chrome

• The only supported language is Node.js

Selenium

PROS

• Works with most browsers

• Multi-language support

• Huge community of users

CONS

• Difficult to run on all browsers

• A bit slower than Puppeteer

To sum it up, Puppeteer is faster than Selenium, but it works only with Chrome, while Selenium works with Chrome, Firefox, Safari, Internet Explorer and Edge.

Now, for my opinion: both solutions are outdated and built with the narrow mindset of developers who refuse to see beyond their code.

It may sound lazy, but I believe that a solution for automated testing should be like a washing machine: it should give me enough flexibility to choose different inputs and settings, but it shouldn't make me pump the water with one hand and spin the drum with the other.

What both solutions are missing:

• Video Recording functionality

• Turnkey Machine Learning

• Integrated Email Testing option

• Screenshot Comparison feature

• Automatic Smart Waiting

• Structured results

Other issues with Selenium and Puppeteer:

• Difficult to upload files in a test

• Difficult to deal with iframes

• Difficult to integrate with your CI/CD system

• Difficult to configure Element Load Timeout

If you're looking for a better alternative, try Endtest.

It has Puppeteer's speed, it supports Selenium's browsers AND it has all the features that they're missing.

