
About Puppeteer
Puppeteer is a JavaScript library for controlling Chrome or Firefox from code. It offers a high-level API over the DevTools Protocol or WebDriver BiDi, and it runs the browser headless, without a visible window, by default.
What it does
Puppeteer opens a browser, navigates to pages, fills in forms and clicks elements. You can also take screenshots and read the content of a page. It is commonly used for automated testing, data collection and checking how a page behaves in a real browser. Scripts are plain JavaScript, so they fit into an existing Node.js project without much extra work.
Key features
- Control Chrome or Firefox from JavaScript
- Runs headless by default
- Find elements by their accessible names
- Works over DevTools Protocol and WebDriver BiDi
- Install with a bundled browser or without one
Who it's for
Puppeteer suits JavaScript and TypeScript developers who want direct control of the browser from Node.js code. It is a good fit for test writers, and for people who build browser scripts for data collection or page checks.
Pricing and good to know
Puppeteer is open source under the Apache 2.0 licence, so it costs nothing to use. You install it with npm, pnpm, Yarn or Bun. Some package managers block install scripts by default, which can stop the browser download, so you may need to fetch the browser by hand with the included command.
Highlights
- Control Chrome or Firefox from JavaScript
- Runs headless by default
- Find elements by their accessible names
- Works over DevTools Protocol and WebDriver BiDi
- Install with a bundled browser or without one












