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.

For a one-off capture, run Chrome with --headless --screenshot. For repeatable captures in a Node.js application, use Puppeteer’s page.screenshot(); use fullPage: true for the whole document and an element handle for one component. Set the viewport explicitly whenever output dimensions matter.

Choose the capture method

Method Best for Control
Chrome command line A quick screenshot without writing an automation script Basic capture and window dimensions
Puppeteer Node.js automation, repeatable captures, and selecting page elements Navigation waits, viewport, capture scope, and image options
Chrome DevTools Protocol (CDP) Applications or services that already communicate with Chrome over CDP Low-level screenshot geometry and encoding
Playwright Teams using Playwright for browser automation Viewport, element, full-page, and output-format choices

For a standalone Node.js script, Puppeteer is usually more direct than calling CDP yourself. Chrome’s command line is the shortest path for a simple capture; choose an automation library when you need to wait for application content, capture specific elements, or repeat the task.

Capture a screenshot from the Chrome command line

Run Chrome with headless mode and the screenshot flag, replacing the URL with the page you want to capture:

chrome --headless --disable-gpu --screenshot https://example.com/

Chrome writes screenshot.png in the current working directory. To set the browser window dimensions, add --window-size=WIDTH,HEIGHT:

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
chrome --headless --disable-gpu --screenshot --window-size=1280,1696 https://example.com/

The dimensions in this example are configuration values, not a required standard. Use the dimensions appropriate to your page and intended output. Chrome documents the headless screenshot flag and window-size example in its headless Chrome guide.

Capture pages and elements with Puppeteer

Puppeteer is a JavaScript library for browser automation and screenshot generation. Its page-level method is page.screenshot(); an element handle also has a screenshot method for a focused capture. The following ES module script captures the viewport, the full page, and one element:

import puppeteer from 'puppeteer';

const browser = await puppeteer.launch();
try {
  const page = await browser.newPage();
  await page.setViewport({ width: 1280, height: 800, deviceScaleFactor: 1 });
  await page.goto('https://example.com/', { waitUntil: 'networkidle2' });

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

  const hero = await page.waitForSelector('.hero');
  if (!hero) throw new Error('Could not find .hero');
  await hero.screenshot({ path: 'hero.png' });
} finally {
  await browser.close();
}

Save this as an ES module file, such as screenshot.mjs, in a project with Puppeteer installed, then run it with Node.js. The example uses networkidle2 as its navigation wait policy and waits for .hero to appear before taking its element screenshot. Replace the selector with one that exists on the target page. Puppeteer’s documentation covers page and element screenshots and the screenshot options, including fullPage, which defaults to false.

Viewport, full-page, or element capture

  • Viewport: Call page.screenshot() without fullPage when you want the visible browser area.
  • Full page: Set fullPage: true when the entire document is needed, rather than only the visible viewport.
  • Element: Wait for a selector and call screenshot() on the returned element handle when the capture should focus on one component.

Set deterministic dimensions

Use page.setViewport() before navigation and specify width, height, and deviceScaleFactor. The width and height establish the viewport in CSS pixels; the scale factor controls the relationship between CSS pixels and output pixels. Keeping these values fixed makes captures more predictable across runs. Chrome’s CLI equivalent for window geometry is --window-size; CDP also accepts explicit screenshot geometry.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
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

Choose an image format

Puppeteer supports PNG, JPEG, and WebP screenshot output. PNG is a sensible choice for lossless text and interface details. JPEG can suit photographic content when lossy compression is acceptable. WebP is useful when the downstream system supports it. For formats with quality controls, choose quality according to the requirements of the destination rather than assuming one setting suits every page. See Puppeteer’s screenshot options for the documented encoding and quality settings.

Wait for the content you need

A navigation wait alone may not mean that every important asset or piece of application data is ready. The example waits for a navigation policy, then waits for the hero selector. For pages that load content asynchronously, add waits that reflect the actual page: a key selector, an application-ready condition, or an asset-specific check. Avoid adding an arbitrary delay as a substitute for knowing what must be ready; it can either waste time or still capture too early.

  • Set viewport dimensions before navigation if page layout depends on the viewport.
  • Wait for the page’s critical content, including fonts, images, or application data where relevant.
  • Use a full-page capture only when content below the fold is part of the required evidence.
  • Close the browser in a finally block so errors during navigation or capture do not leave the process running.

Use CDP for lower-level control

Chrome DevTools Protocol exposes screenshot capture through the Page domain and its Page.captureScreenshot method. Enable the domain before calling it. For a specific region or geometry, provide a clip with x, y, width, height, and scale; CDP also documents screenshot encoding options. This is useful when an existing automation service already speaks CDP. For a new standalone Node.js capture script, Puppeteer generally avoids the extra protocol-level work. The method and parameters are documented in the CDP Page protocol reference.

Use Playwright as an alternative

Playwright supports screenshots of the current viewport, a selected element, or the full scrollable page. Its documentation covers PNG, JPEG, and WebP as well as CSS-pixel and device-pixel output. If Playwright is already your automation library, use its screenshot guide rather than adding Puppeteer just for capture. Its CLI also has a screenshot command with a target argument and options including --full-page, --filename, --type, and --hires; see the CLI documentation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
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.

Or skip the browser setup

For an API-based capture, ScreenshotNeo returns a screenshot or PDF from one GET request. It can accept cookie or consent banners and remove more than 60 known consent platforms, newsletter popups, and chat widgets before capture; you can turn each step off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and response headers report the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for AI agents and MCP clients.

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 documentation for request options. The service also supports full-page capture with lazy images loaded, element selectors, device and viewport settings, image formats, PDF settings, custom CSS and JavaScript, waits, request blocking, headers and cookies, caching, asynchronous jobs, bulk capture, signed links, and a usage API. Its parameter names are compatible with those used by other screenshot APIs, which can simplify a switch. Plans include 1,000 screenshots per month free with no card; paid plans start at $5 for 3,000. Sign up for the free plan.

Troubleshoot common capture problems

The output file is not where expected

Chrome’s command-line example writes screenshot.png in the current working directory. Check the directory from which the command ran. In Puppeteer, set an explicit path to choose the output filename and location.

The layout or dimensions vary between runs

Set a fixed viewport width, height, and device scale factor before navigation. For the CLI, specify --window-size. Pages can also respond to different viewport sizes with different layouts, so use the size that matches the desired capture.

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

The screenshot misses an image, font, or application content

The page may have navigated before that content was ready. Wait for a relevant selector or application condition, and add checks for critical assets if the page requires them. A general navigation wait policy is not a guarantee that every site-specific asynchronous task has completed.

Rank #4
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

The element screenshot fails or captures the wrong region

Confirm the selector matches the intended element and wait for it to appear before calling the handle’s screenshot() method. If a selector matches multiple elements, choose the specific target rather than relying on an ambiguous match.

The capture is unexpectedly very tall

Check whether fullPage: true is enabled. It captures the document rather than just the viewport; omit that option for a viewport screenshot, or target a particular element when only a component is needed.

The image is too large or unsuitable for its destination

Choose a format supported by the downstream system. PNG preserves text and UI details without lossy compression; JPEG trades some image fidelity for photographic compression; WebP is an option when supported. Review the library’s format and quality options when output size matters.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Performance and reliability considerations

Browser automation carries the work of launching and managing a browser, navigating to the page, waiting for content, and encoding the output. Keep the lifecycle explicit and avoid waiting for more than the page requires. Capture only the scope needed: a viewport or element is usually a smaller job than a full document. For repeated captures, define a consistent viewport, wait condition, output type, and browser lifecycle so that changes in setup do not become unexplained differences in the images.

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.

There is no single wait policy that guarantees readiness for every site. A page with client-rendered data, delayed images, or custom font loading may need application-specific waits. Choose those conditions based on what the screenshot must show; if the required content never becomes available, fail visibly rather than silently treating an incomplete capture as correct.

Frequently Asked Questions

Does Chrome’s headless screenshot command capture the full page?

The documented CLI example captures a screenshot, but the cited CLI guidance does not establish a full-page option. Use Puppeteer’s documented fullPage: true or a browser automation library with full-page capture when you need the whole document.

Can I capture a page without saving a PNG file?

Puppeteer’s screenshot options can return image data as well as write to a path. Consult its screenshot options documentation for the available return behavior.

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

Can CDP capture only a rectangle of a page?

Yes. Page.captureScreenshot accepts a clip describing the capture geometry, including x and y position, width, height, and scale.

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.