WARNING: This site is under construction! Expect flickering GIFs and excessive use of the tag!

Puppeteer - The Totally Rad Web Automation Tool!

Version: 24.4.0

What is Puppeteer?

Puppeteer is a JavaScript library that gives you a HIGH-LEVEL API to control Chrome or Firefox over the DevTools Protocol or WebDriver BiDi. It's totally tubular!

Puppeteer runs in headless mode by default, so you don't even need a UI to use it!


Get Started!

Section Link Description
Get started Get started Jump in and get your feet wet!
API API Check out the awesome API docs!
FAQ FAQ Got questions? We got answers!
Contributing Contributing Help us make Puppeteer even better!
Troubleshooting Troubleshooting Having problems? We'll help!

Installation!

Installing Puppeteer is super easy!

          npm install puppeteer
          # Downloads compatible Chrome during installation.
          npm install puppeteer-core
          # Alternatively, install as a library, without downloading Chrome.
          yarn add puppeteer
          # Downloads compatible Chrome during installation.
          yarn add puppeteer-core
          # Alternatively, install as a library, without downloading Chrome.
          pnpm add puppeteer
          # Downloads compatible Chrome during installation.
          pnpm add puppeteer-core
          # Alternatively, install as a library, without downloading Chrome.
        

Example Code!

Here's a totally awesome example:

          import puppeteer from 'puppeteer';
          // Or import puppeteer from 'puppeteer-core';
          // Launch the browser and open a new blank page
          const browser = await puppeteer.launch();
          const page = await browser.newPage();
          // Navigate the page to a URL.
          await page.goto('https://developer.chrome.com/');
          // Set screen size.
          await page.setViewport({width: 1080, height: 1024});
          // Type into search box.
          await page.locator('.devsite-search-field').fill('automate beyond recorder');
          // Wait and click on first result.
          await page.locator('.devsite-result-item-link').click();
          // Locate the full title with a unique string.
          const textSelector = await page.locator('text/Customize and automate').waitHandle();
          const fullTitle = await textSelector?.evaluate(el => el.textContent);
          // Print the full title.
          console.log('The title of this blog post is "%s".', fullTitle);
          await browser.close();
        
Under Construction New! Generate your own 90s page here! Under Construction