Puppeteer automation testing framework index.

Test More In Less Time

Run Automation Testing In Parallel On The LambdaTest Cloud

Start for free

Description

Puppeteer is a Node library which provides a high-level API to control Chrome or Chromium over the DevTools Protocol. Puppeteer runs headless by default.

Support and updates

  • Puppeteer has 78935 stars, 8476 forks.
  • It has 33 major releases in the past 6 months.
  • It has 15 commits and there are 17 open pull requests.
  • It has 1805 open issues and 3623 have been closed.

Code statistics

  • Puppeteer has 425 methods.

Blogs

Check out the latest blogs from LambdaTest on this topic:

Selenium Tutorial: Basics and Getting Started

Selenium is still the most influential and well-developed framework for web automation testing. Being one of the best automation frameworks with constantly evolving features, it is poised to lead the industry in all aspects as compared to other trending frameworks like Cypress, Puppeteer, PlayWright, etc. Furthermore, using Selenium gives you the flexibility to use different programming languages like C#, Ruby, Perl, Java, Python, etc., and also accommodate different operating systems and web browsers for Selenium automation testing.

Selenium 4.0 and The Future: Manoj Kumar [Testμ 2022]

We were eager to listen to Manoj Kumar, VP Developer Relations, LambdaTest, speak on the importance of Selenium 4.0 and how bright the future is. This was the agenda of the speech:

How Does Enterprise Accelerate Test And Release Velocity?

Staying competitive in today’s corporate world necessitates a continual delivery of client satisfaction. Accelerating release cycles has emerged as a key distinction for businesses wanting to grow their client base. Enterprise tests and releases are built on the foundation of code-level acceleration. It allows teams to write tests at the appropriate level of abstraction to run sooner in the pipeline, iterate faster and at scale, and release higher-quality code faster than ever before.

Complete Selenium WebDriver Tutorial: Guide to Selenium Test Automation

When it comes to web automation testing, there are a number of frameworks like Selenium, Cypress, PlayWright, Puppeteer, etc., that make it to the ‘preferred list’ of frameworks. The choice of test automation framework depends on a range of parameters like type, complexity, scale, along with the framework expertise available within the team. However, it’s no surprise that Selenium is still the most preferred framework among developers and QAs.

Getting Started With Automation Testing Using Selenium Ruby

Ruby is a programming language which is well suitable for web automation. Ruby makes an excellent choice because of its clean syntax, focus on built-in library integrations, and an active community. Another benefit of Ruby is that it also allows other programming languages like Java, Python, etc. to be used in order to automate applications written in any other frameworks. Therefore you can use Selenium Ruby to automate any sort of application in your system and test the results in any type of testing environment

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

License

Puppeteer is lincensed under the Apache License 2.0

LambdaTest Community Discussions

StackOverFlow community discussions

Questions
Discussion

How to take full web page screenshot using webdriverIO command?

Puppeteer focus loop through input fields

Puppeteer performance timeline?

Puppeteer if string contains X, then do this, else do this

Puppeteer does not change selector

Chrome download error when downloading file with Puppeteer

Node js Puppeteer - MaxListenersExceededWarning: Possible EventEmitter memory leak detected

In which context does $eval & $$eval execute in page/frame/elementHandle?

Click visible elements using puppeteer

Puppeteer gives undefined with $$eval

If you want support of all browser and devices use https://github.com/wswebcreation/wdio-image-comparison-service

Alternately, with WebdriverIO 6 (maybe with 5 as well) it's possible to use Puppeteer commands. With Puppeteer, it's possible to take full-page screenshots, see https://github.com/puppeteer/puppeteer/blob/v5.3.1/docs/api.md#pagescreenshotoptions

// Mocha example
describe('Screenshot', () => {
    // replace with beforeAll in Jasmine!
    before(() => {
        // add command to reuse easily everywhere in the project
        // https://webdriver.io/docs/customcommands.html
        browser.addCommand('takeFullPageScreenshot', function (options = {}) {
            // Puppeteer commands should be wrapped with browser.call
            // because they return Promises
            // https://webdriver.io/docs/api/browser/call.html
            return browser.call(async () => {
                // https://webdriver.io/docs/api/browser/getPuppeteer.html
                const puppeteer = await browser.getPuppeteer()
                // now we interact with Puppeteer API
                // https://github.com/puppeteer/puppeteer/blob/v5.3.1/docs/api.md#browserpages
                const pages = await puppeteer.pages()

                // https://github.com/puppeteer/puppeteer/blob/v5.3.1/docs/api.md#pagescreenshotoptions
                return pages[0].screenshot({ ...options, fullPage: true })
            })
        })
    })

    it('should take full page screenshot', () => {
        browser.url('https://stackoverflow.com/questions/64242220/how-to-take-full-web-page-screenshot-using-webdriverio-command')

        // somehow wait for page to load
        expect($('.user-details')).toBeVisible()

        // take screenshot and save to file
        browser.takeFullPageScreenshot({ path: './screenshot.png' })

        // take screenshot but don't save to file
        const screenshot = browser.takeFullPageScreenshot()
    })
})
https://stackoverflow.com/questions/64242220/how-to-take-full-web-page-screenshot-using-webdriverio-command

Test case code snippets

General webpage functionality - Test page text justification

Description:

Page text should be left-justified.

API Testing - Check locale-based representation

Description:

Verify that the API response contains the correct resource representation based on the specified locale (e.g. en-US, fr-FR).

API Testing - Check CORS preflight

Description:

Verify that the API correctly handles CORS preflight requests and returns the correct HTTP status code and error message.

General webpage functionality - Test broken links check

Description:

Check all pages for broken links.

Downloads

Puppeteer can be downloaded from it’s GitHub repository - https://github.com/puppeteer/puppeteer

Method index

...

Automation Testing Cloud

Run Selenium, Cypress & Appium Tests Online on
3000+ Browsers.

Know More
Kane AI

Kane AI

World’s first end to end software testing agent.

Other similar frameworks

cavy

Cavy is a cross-platform, integration test framework for React Native. Cavy tests allow you to programmatically interact with deeply nested components within your application.

ghostjs

ghostjs provides modern UI testing with async functions

tracetest

Perform integration tests by trace-based testing using OpenTelemetry protocol

Mocha

Mocha is an open-source framework, maintained exclusively by volunteers. It is simple, flexible, fun javascript test framework for node.js & the browser.

differencify

Differencify is a library for visual regression testing

Frameworks to try

Phake

PHP Mocking Framework

Swift-snapshot-testing

SnapshotTesting is a delightful open-source Swift snapshot testing tool. It supports dozens of snapshot strategies and no configuration is required.

Phpunit

PHPUnit is a programmer-oriented, open-source automation testing framework for PHP. It is an instance of the xUnit architecture for unit testing frameworks.

JSONassert

Write JSON unit tests in less code. Great for testing REST interfaces.

Gauge

Gauge is a light weight cross-platform test automation tool. It provides the ability to author test cases in the business language.

Run Puppeteer scripts on 3000+ browsers online

Perform automation testing with Puppeteer on LambdaTest, the most powerful, fastest, and secure cloud-based platform to accelerate test execution speed.

Test Now