October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PCOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk7 min

Puppeteer: A Guide to Browser Automation and Screenshots

A practical Puppeteer guide to browser setup, page and element screenshots, output options, version compatibility, troubleshooting, and hosted alternatives.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Puppeteer automates Chrome and Firefox from JavaScript, and its screenshot API can capture a viewport, an entire page, a selected element, or a defined region. For the simplest local setup, install puppeteer, which downloads a compatible browser by default; use puppeteer-core when you will provide your own browser or connect to a remote one. This guide covers setup, capture options, waiting for dynamic pages, common failures, and when a hosted browser or screenshot API may be a better fit.

Choose the right Puppeteer package

The two packages have different browser-installation assumptions. The full puppeteer package downloads a compatible Chrome for Testing and chrome-headless-shell by default. puppeteer-core does not download Chrome; choose it when managing the browser yourself or connecting to a remote browser. Its configuration is not read from the same configuration files and environment defaults as the full package, so set the browser connection or executable explicitly in your code.

As an Amazon Associate I earn from qualifying purchases.

Package Browser setup Best fit
puppeteer Downloads its compatible browser by default. Learning Puppeteer and local automation with the standard setup.
puppeteer-core No browser download; provide a browser executable or remote connection. Self-managed browser installations and remote browser services.

Install with your package manager: npm i puppeteer, yarn add puppeteer, pnpm add puppeteer, or bun add puppeteer. Replace puppeteer with puppeteer-core if that is your chosen setup. The official installation documentation estimates the automatic browser download at approximately 170 MB on macOS, 282 MB on Linux, and 280 MB on Windows; these are estimates, not fixed measurements. The default browser cache is ~/.cache/puppeteer. Puppeteer installation guide.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check runtime and platform requirements

As documented for Puppeteer 25.12.0 on October 3, 2026, the system requirements specify Node 22.12 or later and TypeScript 5.0.1 or later for TypeScript projects. Browser dependencies also vary by operating system. Check the current system requirements before deploying: runtime and platform requirements can change between releases.

#1 Best Overall
Sale
Logitech Brio 101 Full HD 1080p Webcam for Streaming and Meetings - Black | 1080p with auto-light correction, built-in mic, privacy shutter, USB-A, compatible with Teams, Google Meet, Zoom and more
  • Compatible with Nintendo Switch 2’s new GameChat mode
  • Auto-Light Balance: RightLight boosts brightness by up to 50%, reducing shadows so you look your best—compared to previous-generation Logitech webcams (1)
  • Privacy with a Slide: The integrated webcam cover makes it easy to get total, reliable privacy when you're not on a video call
  • Built-In Mic: The built-in microphone lets others hear you clearly during video calls
  • Easy Plug-And-Play: The Brio 101 works with most video calling platforms, including Microsoft Teams, Zoom and Google Meet—no hassle; it just works

Automate a page and save a screenshot

This runnable Node.js example opens a page, waits for the navigation event, captures the full page as a PNG, and closes the browser even if navigation or capture fails. Replace the URL with the page you need.

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  try {
    const page = await browser.newPage();
    await page.goto('https://example.com', { waitUntil: 'networkidle2' });
    await page.screenshot({ path: 'page.png', fullPage: true });
  } finally {
    await browser.close();
  }
})();
  1. Launch the browser with puppeteer.launch().
  2. Create a tab using browser.newPage().
  3. Navigate with page.goto(), choosing a wait condition that suits the page.
  4. Capture using page.screenshot().
  5. Close the browser when the work is complete.

The official screenshot guide uses networkidle2 as an example navigation wait. It is not a universal definition of “ready”: analytics, polling, streaming, and other ongoing requests can make network-based waits unsuitable for some sites. For a dynamic page, wait for the specific content you need, such as a selector, or use a deliberate delay if the page has a known rendering pause. Avoid adding arbitrary waits when a meaningful page condition is available. See the Puppeteer screenshot guide.

Capture a selected element

Use ElementHandle.screenshot() when you need only one component rather than the page. The handle screenshot method attempts to scroll a hidden element into view before capture.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  try {
    const page = await browser.newPage();
    await page.goto('https://example.com', { waitUntil: 'domcontentloaded' });
    const element = await page.waitForSelector('main');
    if (!element) throw new Error('Could not find main element');
    await element.screenshot({ path: 'main.png' });
  } finally {
    await browser.close();
  }
})();

Change main to a selector that identifies the element you want. Waiting for that selector makes the capture conditional on the target being present instead of assuming a fixed delay is enough.

Rank #2
Sale
Logitech C270 720p Webcam Plug-and-Play Wide Screen Video Calling - Black | Auto-Light Correct, Noise-Reducing Mic, Zoom, Microsoft, Teams, Skype, Nintendo Switch 2 New GameChat Mode, PC Mac compatible
  • Compatible with Nintendo Switch 2’s new GameChat mode
  • Crisp HD 720p/30 fps video calls with diagonal 55° field of view and auto light correction. Compatible with popular platforms including Skype and Zoom.
  • The built-in noise-reducing mic makes sure your voice comes across clearly up to 1.5 meters away, even if you’re in busy surroundings.
  • C270’s RightLight 2 feature adjusts to lighting conditions, producing brighter, contrasted images to help you look good in all your conference calls.
  • The adjustable universal clip lets you attach the camera securely to your screen or laptop, or fold the clip and set the webcam on a shelf. You’re always ready for your next video call.

Set screenshot scope and output

page.screenshot() captures the page; ElementHandle.screenshot() captures a selected element. Screenshot options let you adjust scope and output:

  • fullPage: true captures the full scrollable page rather than only the visible viewport.
  • clip captures a specified rectangular region.
  • path writes the image to a file. Puppeteer can infer the output type from the file extension.
  • type explicitly chooses the image format.
  • quality controls quality for applicable image formats; it does not apply to PNG.
  • omitBackground: true removes the default white background to allow transparency where supported by the output.

Consult the versioned ScreenshotOptions API reference for exact option types and constraints. If you are capturing a very long page, consider whether a full-page image is practical for your downstream use; a viewport or clip may produce a more manageable artifact.

Understand browser versions and protocols

Puppeteer behavior depends on the paired browser and release. The supported-browser table lists the versions tested with each Puppeteer release; it is not a promise that any arbitrary browser version will work. As checked October 3, 2026, Puppeteer v25.12.0 maps to Chrome for Testing 154.0.8037.57 and Firefox 156.0.1. If an exact Puppeteer release is not listed, the documentation advises using the browser listed for the immediately prior Puppeteer version. Verify the current supported browsers table when pinning dependencies.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

From Puppeteer v20, the Chrome download is Chrome for Testing, which supports headless and headful operation; the older headless implementation is separately available as chrome-headless-shell. From v23, Puppeteer downloads and works with stable Firefox. Puppeteer uses Chrome DevTools Protocol (CDP) by default for Chrome and supports WebDriver BiDi; Firefox uses WebDriver BiDi by default. The FAQ describes production-ready BiDi support for Chrome and Firefox from v23 onward, while CDP support for Chrome continues. API availability can differ by protocol, so check the relevant feature documentation if your automation must run against both browsers. Puppeteer FAQ.

Rank #3
Sale
NexiGo N60 1080P Webcam with Microphone, Software Control & Privacy Cover, USB HD Computer Web Camera, Plug and Play, for Zoom/Skype/Teams, Conferencing and Video Calling
  • 【Full HD 1080P Webcam】Powered by a 1080p FHD two-MP CMOS, the NexiGo N60 Webcam produces exceptionally sharp and clear videos at resolutions up to 1920 x 1080 with 30fps. The 3.6mm glass lens provides a crisp image at fixed distances and is optimized between 19.6 inches to 13 feet, making it ideal for almost any indoor use.
  • 【Wide Compatibility】Works with USB 2.0/3.0, no additional drivers required. Ready to use in approximately one minute or less on any compatible device. Compatible with Mac OS X 10.7 and higher / Windows 7, 8, 10 & 11 / Android 4.0 or higher / Linux 2.6.24 / Chrome OS 29.0.1547 / Ubuntu Version 10.04 or above. Not compatible with XBOX/PS4/PS5.
  • 【Built-in Noise-Cancelling Microphone】The built-in noise-canceling microphone reduces ambient noise to enhance the sound quality of your video. Great for Zoom / Facetime / Video Calling / OBS / Twitch / Facebook / YouTube / Conferencing / Gaming / Streaming / Recording / Online School.
  • 【USB Webcam with Privacy Protection Cover】The privacy cover blocks the lens when the webcam is not in use. It's perfect to help provide security and peace of mind to anyone, from individuals to large companies. 【Note:】Please contact our support for firmware update if you have noticed any audio delays.
  • 【Wide Compatibility】Works with USB 2.0/3.0, no additional drivers required. Ready to use in approximately one minute or less on any compatible device. Compatible with Mac OS X 10.7 and higher / Windows 7, 10 & 11, Pro / Android 4.0 or higher / Linux 2.6.24 / Chrome OS 29.0.1547 / Ubuntu Version 10.04 or above. Not compatible with XBOX/PS4/PS5.

Fix common setup and capture failures

Puppeteer cannot find its expected Chrome

A package manager may block dependency install scripts, preventing the browser download. Allow the Puppeteer install script or run the documented browser-install command manually, then retry. Confirm that the browser version corresponds to your installed Puppeteer release rather than assuming a system Chrome will match. See the installation guide.

Navigation never reaches the requested wait state

A site that keeps network requests open may not satisfy a network-idle condition. Choose a different navigation condition, then wait for the selector or state that actually matters to your screenshot. A page can also finish network activity before client-rendered content is ready, so check for the target content rather than treating navigation completion as proof of visual readiness.

The element screenshot is missing or fails

Check that the selector matches an element on the page and wait for it before capturing. If the element is hidden, ElementHandle.screenshot() attempts to scroll it into view, but the element still needs to exist and be capturable. For content that appears only after interaction, perform the required action and wait for the resulting state first.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Output format or transparency is unexpected

Check the file extension or set type explicitly. Do not use quality expecting it to affect PNG output. To remove the default white background, set omitBackground: true and choose an output format appropriate for transparency.

Rank #4
Sale
EMEET C960 1080P Webcam with Microphone, 2 Mics, 90° FOV, Computer Camera | USB Type-A & A-to-C Adapter, Fixed Focus, Plug&Play for Zoom/Teams/Facetime/YouTube/Google Meet/Switch 2 Camera, 2025 Version
  • 1080P Webcam with Cover for Video Calls - EMEET computer webcam provides design and Optimization for professional video streaming. Realistic 1920 x 1080p video, 5-layer anti-glare lens, providing smooth video. C960 computer camera delivers 1920x1080 video with fixed focus (11.8–118.1 inches), so as to provide a clearer image. C960 USB webcam has a cover and can be removed automatically to meet your needs for privacy. For optimal image performance, use the webcam in a well-lit environment.
  • Built-in 2 Omnidirectional Mics - EMEET webcam with microphone for desktop features 2 built-in omnidirectional microphones, picking up your voice to create clear audio for communication. When installing the webcam, select EMEET C960 as the default microphone input device in your computer and video applications and select C960 as the default device in Zoom/Teams and ensure microphone permissions are enabled for proper use. Please note that C960 does not include built-in speakers.
  • Automatic Light Adjustment - Automatic exposure adjustment is applied in EMEET HD webcam 1080p so that the streaming webcam can deliver stable image performance. EMEET C960 camera for computer also features color adjustment and exposure optimization to help you look your best. For optimal video quality, it is recommended to use the webcam in normal or well-lit environments and select suitable video settings in your application. Proper lighting helps achieve a clearer and more balanced image.
  • Plug-and-Play & Upgraded USB Connectivity - New C960 webcam features both USB Type-A & A-to-C adapter connections for wider compatibility. For stable performance, connect the webcam directly to the computer's main USB port and ensure the device is recognized correctly. If a hub or docking station is used, please ensure it provides sufficient power and stable data transmission, as limited ports may affect performance. 90° wide-angle lens captures more participants without frequent adjustments.
  • High Compatibility & Multi Application - C960 webcam for laptop is compatible with Windows 10/11, macOS 10.14+, and Android TV 7.0+. Not supported: Windows Hello, TVs, tablets, or game consoles. It works with Zoom, Teams, Facetime, Google Meet, YouTube and more. Please select C960 webcam as the default camera and microphone device in your application and ensure camera/microphone permissions are enabled, especially on macOS. (Tips: Incompatible with Windows Hello)

A self-managed or remote browser does not launch

With puppeteer-core, specify the executable path or remote connection details yourself; it does not download Chrome or inherit the full package’s configuration defaults. Also confirm that the browser and runtime meet the current system requirements.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

When local Puppeteer is enough—and when to go hosted

Local Puppeteer is a straightforward choice for learning the API, capturing pages from a controlled environment, and jobs that fit the machine’s browser and concurrency capacity. A hosted browser may help when a team needs more browser or operating-system combinations, concurrent CI sessions, debugging artifacts, or less responsibility for installing and maintaining browser infrastructure. Consider these dimensions before moving a workflow:

  • Which browsers and operating systems are supported, and which versions are actually available on the plan?
  • How many sessions must run concurrently, and what happens at the concurrency limit?
  • How much CI setup is required, and are logs or recordings useful for debugging?
  • Can the browser reach private staging environments or other network locations the workflow needs?
  • What infrastructure maintenance moves to the provider, and what usage limits or current prices apply?

BrowserStack describes Automate for running Puppeteer tests across cloud browsers, with parallel execution, CI integrations, and debugging features. Its product page claims parallel testing can make tests run 30x faster; that is a vendor claim, not an independently validated benchmark. Its product and documentation pages summarize browser coverage differently, so check the current plan and documentation for the coverage that applies to your use case. BrowserStack Automate and its Puppeteer integration guide.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Browserless offers managed browsers reachable through Puppeteer or Playwright over WebSocket, as well as REST and GraphQL routes for tasks such as screenshots and PDFs. Its testing page advertises a starting price of $25 per month; confirm current pricing and plan terms before relying on that figure. A hosted browser is optional, not a requirement for ordinary local screenshots. Browserless, Browserless testing, and Browserless pricing.

Or skip the browser setup

If you only need a screenshot rather than a programmable browser session, ScreenshotNeo is a website screenshot API and MCP server. One GET request returns an image or PDF. Its API can accept a URL and return a capture without your installing and managing a local browser.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp

See the ScreenshotNeo API documentation for request details. The service removes cookie banners, newsletter popups, and chat widgets before capture; bot checks, blank pages, and failed loads are never billed. It also has an MCP server so AI agents can take screenshots. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots.

Sign up for ScreenshotNeo and get 1,000 free screenshots a month, no card required.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Frequently Asked Questions

Does Puppeteer require Chrome?

Puppeteer officially supports Chrome and Firefox. The full package downloads its compatible Chrome setup by default; Firefox support and browser pairing depend on Puppeteer version.

Can Puppeteer save screenshots as PDF?

Puppeteer has separate page PDF functionality; the screenshot methods discussed here produce image captures. Use the current Puppeteer page API documentation for PDF options.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.