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

Use Puppeteer’s page.screenshot() method to capture the current Chromium page. Pass a path to save the image, set fullPage: true for the entire page, or use clip or an element handle to capture a smaller area. The examples below use Puppeteer’s JavaScript API; check the documentation for the version installed in your project before relying on version-specific options.

How do I take a screenshot with Puppeteer?

Install Puppeteer in your project, then launch a browser, open a page, navigate to a URL and call page.screenshot() with a file path:

import puppeteer from 'puppeteer';

const browser = await puppeteer.launch();
try {
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({ path: 'screenshot.png' });
} finally {
  await browser.close();
}

This uses the documented basic workflow: page.goto() completes before the screenshot call. The browser is closed in a finally block so it is also closed if navigation or capture fails. Puppeteer’s guide shows this workflow at Puppeteer Screenshots.

Choose when the page is ready

Finishing navigation does not guarantee that every image, font, animation or application-rendered element has reached the visual state you want. Choose a wait that matches the page. For example, explicitly wait for a selector that appears when the relevant content is rendered:

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.
#1 Best Overall
Sale
Philips 24 Inch Computer Monitor FHD 100Hz VA VESA Flicker-Free, 241V8LB
  • CRISP CLARITY: This 23.8″ Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
  • INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
  • THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors
  • WORK SEAMLESSLY: This sleek monitor is virtually bezel-free on three sides, so the screen looks even bigger for the viewer. This minimalistic design also allows for seamless multi-monitor setups that enhance your workflow and boost productivity
  • A BETTER READING EXPERIENCE: For busy office workers, EasyRead mode provides a more paper-like experience for when viewing lengthy documents
await page.goto('https://example.com');
await page.waitForSelector('main article');
await page.screenshot({ path: 'screenshot.png' });

Use a selector that is meaningful for the target site. Puppeteer’s screenshot guide demonstrates networkidle2, but the API documentation does not promise that any one navigation wait mode is sufficient for every page. For a page that updates after navigation, wait for the application-specific condition you need rather than assuming that navigation completion means the screenshot is visually complete. See the Page API.

How do I take a full-page screenshot?

Set fullPage to true to capture the whole page instead of only the visible viewport:

await page.screenshot({ path: 'full-page.png', fullPage: true });

Without an area option, fullPage defaults to false, so the capture is limited to the viewport. The documented options are in ScreenshotOptions.

Rank #2
Philips 22 Inch Computer Monitor FHD 100Hz VA VESA Flicker-Free, 221V8LB
  • CRISP CLARITY: This 22 inch class (21.5″ viewable) Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
  • 100HZ FAST REFRESH RATE: 100Hz brings your favorite movies and video games to life. Stream, binge, and play effortlessly
  • SMOOTH ACTION WITH ADAPTIVE-SYNC: Adaptive-Sync technology ensures fluid action sequences and rapid response time. Every frame will be rendered smoothly with crystal clarity and without stutter
  • INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
  • THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors

How do I screenshot a specific element?

Wait for the target element, check that it was found, then call screenshot() on its element handle:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
const element = await page.waitForSelector('main article');
if (!element) throw new Error('Article not found');
await element.screenshot({ path: 'article.png' });

An element screenshot scrolls the element into view if needed. It throws if the element has been detached from the DOM, which can happen if a dynamic page replaces or removes it between selection and capture. Choose a selector that identifies the intended element on the actual page, and wait for it before capturing. See ElementHandle.screenshot().

How do I capture a rectangle?

Pass a clip object with the rectangle to capture. Its dimensions and position are specified in the screenshot options; consult the reference for the current option shape and details:

Rank #3
Sale
Dell 24 Monitor - SE2426H - 23.8-inch FHD (1920x1080) 144Hz 1ms Display, in-Plane Switching (IPS) Technology, AMD FreeSync™, TÜV 3-Star 2X HDMI, Tilt
  • Clear visuals. Fluid motion: A 144Hz refresh rate and 1ms MPRT deliver smooth, tear‑free motion across work, gaming, and streaming for clearer, more fluid viewing.
  • Eye comfort: TÜV Rheinland 3‑star* certification reduces harmful blue light while preserving stunning color quality without compromise. *TÜV Rheinland 3-star eye comfort certification.
  • Wide viewing angle: Get consistent views across a wide 178° /178° viewing angle.
  • In-Plane Switching (IPS): See excellent color accuracy and consistency across wide viewing angles with In-plane Switching (IPS) technology.
  • Ultra-thin bezels: Maximize your viewing experience with thin bezels.
await page.screenshot({
  path: 'region.png',
  clip: { x: 40, y: 80, width: 500, height: 300 }
});

The documented captureBeyondViewport default depends on whether a clip is provided: it is false without a clip and true when a clip is supplied. Set it explicitly if capturing beyond the viewport matters to your use case. See ScreenshotOptions.

How do I save the screenshot to a file or get image data?

With path, Puppeteer writes the screenshot to that path. A relative path is resolved from the Node.js process working directory, not necessarily from the directory containing the script. If you omit path, the method returns image data instead of writing a file; by default that data is a Uint8Array. Set encoding: 'base64' when you need a base64 string.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
const imageBytes = await page.screenshot();

const base64Image = await page.screenshot({ encoding: 'base64' });

The return value and path behavior are documented in Page.screenshot().

Rank #4
Sale
Samsung 27" Essential S3 (S36GD) Series FHD 1800R Curved Computer Monitor
  • CURVED FOR ENHANCED ENGAGEMENT: An immersive viewing experience with a curved monitor that wraps more closely around your field of vision; It creates a wider view, enhancing depth perception and minimizing peripheral distraction
  • SMOOTH PERFORMANCE FOR SEAMLESS CONTENT: Stay in the action when playing games, watching videos, or working on creative projects; The 100Hz refresh rate reduces lag and motion blur so you don't miss a thing in fast-paced moments¹
  • MORE GAMING POWER: Gain the edge with optimizable game settings; Color and image contrast can be adjusted to see scenes more vividly and spot enemies hiding in the dark; Game Mode adjusts any game to fill the screen so you can view every detail²
  • KEEP IT EASY ON THE EYES: Care for your eyes and stay comfortable, even during long sessions; Advanced eye comfort technology certified by TÜV reduces eye strain by minimizing blue light and reducing irritating screen flicker²
  • INCREASED VERSATILITY: Connect to more; Plug devices straight into your monitor for increased flexibility, making your computing environment even more convenient

Which screenshot format and options should I use?

Need Option or behavior Important detail
Default image type defaults to 'png' When saving to a path, Puppeteer can infer the image type from the file extension.
JPEG or another supported format Set type to the desired documented format Check the installed Puppeteer version’s ScreenshotOptions reference.
Adjust lossy-image quality Use quality The documented range is 0–100; it applies only to formats that support quality and does not apply to PNG. There is no universally best quality value.
Transparent background Set omitBackground: true This hides the default white background; the default is false.
Returned image as text Set encoding: 'base64' The default is binary image data as a Uint8Array.
Crop to a rectangle Set clip Use captureBeyondViewport explicitly when its behavior outside the viewport matters.
Use the speed option optimizeForSpeed defaults to false The cited reference documents the option but does not establish a performance guarantee.

Option defaults and constraints are listed in the ScreenshotOptions API reference.

What changes when Puppeteer uses WebDriver BiDi?

Puppeteer’s WebDriver BiDi support page lists a narrower screenshot parameter set: clip, encoding and fullPage. Do not assume that options such as omitBackground, quality or captureBeyondViewport are supported in BiDi mode without checking current protocol support. The general ScreenshotOptions reference and the WebDriver BiDi support page describe different option scopes.

Common problems and fixes

  • The screenshot is missing late-loading content: Navigation may have completed before the application rendered the content. Wait for an application-specific selector or condition before calling screenshot().
  • The output file is not where expected: A relative path is resolved against the process working directory. Use an absolute path or confirm the directory from which the Node.js process runs.
  • The selected element cannot be captured: Verify the selector matches the intended element and wait for it. If the element was removed or replaced after selection, obtain a fresh handle; element capture throws when the handle is detached.
  • PNG ignores the requested quality: The quality option does not apply to PNG. Use a format that supports quality if you need that setting, or leave it out for PNG.
  • A BiDi capture rejects an option: Compare the option with the BiDi-supported list, which documents only clip, encoding and fullPage. Use an option supported by the active protocol.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

If you need a screenshot through an API rather than managing a Puppeteer browser, ScreenshotNeo accepts a URL in one GET request and returns an image or PDF. For example, save a WebP response with cURL:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Sale
Sceptre New 22-Inch Gaming Monitor, FHD 1080p, Up to 144Hz, HDMI, DisplayPort, Built-in Speakers, Machine Black (E225W-FW144 Series, 2026)
  • 【INTEGRATED SPEAKERS】Whether you're at work or in the midst of an intense gaming session, our built-in speakers provide rich and seamless audio, all while keeping your desk clutter-free.
  • 【EASY ON THE EYES】 Protect your eyes and enhance your comfort with Blue-Light Shift technology. This feature reduces harmful blue light emissions from your screen, helping to alleviate eye strain during long hours of use and promoting healthier viewing habits.
  • 【WIDEN YOUR PERSPECTIVE】Our sleek minimal bezel design ensures undivided attention. The nearly bezel-free display seamlessly connects in a dual monitor arrangement, delivering an unobstructed view that lets you focus on more at once, completely distraction-free.
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 options. ScreenshotNeo removes known cookie and consent banners, newsletter popups and chat widgets before capture; each step can be turned off. Bot checks and CAPTCHAs, blank pages, timeouts, failed loads and cache hits are not billed, and responses identify the page verdict and billing status in headers. Its MCP server includes take_screenshot, get_page_info and capture_pdf for AI agents and MCP clients. The Free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots.

Sign up free for 1,000 screenshots a month with no card.

Frequently Asked Questions

Which Puppeteer version do these options describe?

The current API documentation observed for this guide displays version 25.12.0; that does not identify the version installed in your project. Check your installed package’s documentation before depending on version-specific behavior.

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.

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