Puppeteer is a JavaScript library which provides a high-level API to control Chrome or Firefox over the DevTools Protocol or WebDriver BiDi. Puppeteer runs in the headless (no visible UI) by default
Get started | API | FAQ | Contributing | Troubleshooting
npm i puppeteer # Downloads compatible Chrome during installation. npm i puppeteer-core # Alternatively, install as a library, without downloading Chrome.importpuppeteerfrom'puppeteer';// Or import puppeteer from 'puppeteer-core';// Launch the browser and open a new blank page.constbrowser=awaitpuppeteer.launch();constpage=awaitbrowser.newPage();// Navigate the page to a URL.awaitpage.goto('https://developer.chrome.com/');// Set screen size.awaitpage.setViewport({width: 1080,height: 1024});// Open the search menu using the keyboard.awaitpage.keyboard.press('/');// Type into search box using accessible input name.awaitpage.locator('::-p-aria(Search)').fill('automate beyond recorder');// Wait and click on first result.awaitpage.locator('.devsite-result-item-link').click();// Locate the full title with a unique string.consttextSelector=awaitpage.locator('::-p-text(Customize and automate)').waitHandle();constfullTitle=awaittextSelector?.evaluate(el=>el.textContent);// Print the full title.console.log('The title of this blog post is "%s".',fullTitle);awaitbrowser.close();