Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run Scan×
Skip to content
browser automation

Puppeteer vs. Cypress for Screenshots in 2026: Which Should You Use?

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

Choose Puppeteer when screenshots are the output of a browser-automation script; choose Cypress when they belong inside Cypress tests. Puppeteer documents page- and element-level screenshot methods with direct capture and output options. Cypress integrates screenshots with its test runner, configurable capture defaults, and automatic failure screenshots during cypress run. These are workflow differences, not evidence that either tool is faster or produces better images: the official documentation cited here provides no head-to-head benchmark.

How to choose between Puppeteer and Cypress for screenshots

Start with the work that surrounds the image, rather than treating screenshots as an isolated feature. If a script or service needs to navigate a browser and save a page or element, Puppeteer’s screenshot API is a direct fit. If the screenshot is evidence attached to a Cypress test run—especially when a failure should trigger a capture—Cypress keeps that step in the test workflow.

Need Better starting point Why
A browser automation script that saves page or element images Puppeteer Its documented APIs capture pages and elements and provide explicit capture and output options.
Screenshots tied to Cypress tests and their failures Cypress It offers test-runner screenshot commands and automatic failure captures during cypress run.
A screenshot service rather than a browser framework to operate ScreenshotNeo It returns a screenshot or PDF from one API request, removes supported consent banners and popups, and bills only clean shots.

This is a workflow-based recommendation from documented features, not a hands-on comparison. The documentation covered here does not establish a universal quality, speed, flakiness, or reliability winner.

What Puppeteer provides for screenshot capture

Puppeteer’s Page.screenshot() captures a page and returns a promise. Its ScreenshotOptions reference documents controls including full-page capture, clipping, capture beyond the viewport, transparent background, image format and quality, encoding, and an optional output path. The API reference page displays version label 25.12.0; that label is not a release date and does not show which version is installed in a particular project.

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

To capture a particular DOM element, ElementHandle.screenshot() uses page screenshot capture and scrolls the element into view if needed. It throws if the element has been detached from the DOM. The Puppeteer screenshots guide demonstrates saving page and element captures to output paths.

Minimal page-capture pattern

The capture call itself is short; the important setup is to launch a browser, create a page, navigate to the intended URL, and wait for the page state your task needs before saving the image. This example uses the documented page method and output-path option:

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

Use your project’s installed Puppeteer package and runtime setup. The exact navigation wait condition should reflect the target page: a site with long-lived network activity may not reach network idle, while a page with delayed content may need a more specific readiness check.

Element capture and clipping

For a known selector, wait for the element and pass its handle to the element screenshot method:

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.
const target = await page.waitForSelector('.report-card');
if (!target) throw new Error('Report card was not found');
await target.screenshot({ path: 'report-card.png' });

For a fixed region rather than a DOM element, use the documented clipping option on the page screenshot call. Prefer an element capture when the target is a meaningful page component: it avoids hard-coding coordinates that can become wrong when the layout changes. If the element disappears or is replaced between selection and capture, reacquire it rather than reusing a detached handle.

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

What Cypress provides for screenshot capture

Cypress exposes cy.screenshot() for application, element, and test-runner captures. Its command options include viewport, full-page, and runner capture modes; clipping and element padding; blackout selectors; and before- and after-capture callbacks. Screenshots go into the configured screenshots folder, which defaults to cypress/screenshots.

The command works in both cypress open and cypress run. Automatic screenshots on test failure, however, are documented for cypress run, not cypress open. That distinction matters if a team expects opening the interactive runner to create the same failure artifacts as a CI run.

Configure capture defaults and failure screenshots

Cypress.Screenshot.defaults() configures project-wide screenshot behavior, including timer and animation handling, scaling, blackout selectors, and whether failures in cypress run trigger automatic screenshots. Cypress documents disabling JavaScript timers and CSS animations during capture by default. Check the configuration reference for the options and behavior available to the version your project uses.

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

For example, a project’s Cypress support code can set defaults centrally rather than repeating options on each command:

Cypress.Screenshot.defaults({
  blackout: ['.personal-data'],
  capture: 'viewport'
});

Use only options supported by your installed Cypress version; consult the configuration reference before adopting a snippet in a project. The command can also take per-capture options, such as capture, blackout, and callbacks.

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.

Understand the asynchronous capture boundary

Cypress cautions that screenshot capture is asynchronous. The application may change after the command is issued but before the image is actually taken, so a screenshot is not guaranteed to represent precisely the state visible at the moment the command was queued. Arrange test steps so that the page is in the intended state, and use the documented callbacks or other test synchronization where needed. Do not assume that issuing a screenshot command freezes the application.

Compare capture scope, repeatability, and browser context

Capture scope

Puppeteer documents page capture, full-page capture, clipping, capture beyond the viewport, and element screenshots. Cypress describes application, element, and runner capture, with viewport, full-page, clipping, blackout, and padding controls. Both can serve ordinary page and component capture needs; the difference is how capture is embedded in the surrounding automation or test process.

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

Repeatability

For screenshot comparisons, first control the sources of visual change: animated elements, timers, dynamic data, clocks, font loading, and layout shifts. Cypress documents defaults and callbacks relevant to some of these consistency concerns, but the cited sources do not establish which tool is less flaky. With either choice, use the same test data and browser configuration for the baseline and subsequent runs, and make readiness explicit before capture.

Browser and runtime context

Cypress starts and controls its own browser instance. Its browser-launch documentation lists Chrome-family browsers and Firefox and describes WebKit as experimental. That is not a complete browser-support comparison against Puppeteer: the Puppeteer sources here describe screenshot APIs, not a directly comparable support matrix. Verify the browser and version requirements of your actual project before choosing either framework.

Artifact paths, CI, and team access

Puppeteer lets a script specify an output path in the screenshot options, so the script owner decides where files go and how CI stores or exposes them. The Cypress screenshots folder defaults to cypress/screenshots and can be configured. In a CI workflow, confirm that the relevant folder is retained and made available to the people who need to inspect failures.

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

Cypress’s screenshots and videos guide describes Cypress Cloud as a companion enterprise service for viewing and sharing run artifacts. Cloud is an artifact-management choice, not a requirement for taking screenshots. A team can use its own CI artifact system instead; choose based on retention, access, and workflow requirements rather than assuming screenshot capture requires Cloud.

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

Use a screenshot API instead of operating a browser framework

If the task is simply to request a screenshot or PDF from a URL, a hosted API can eliminate browser installation, launch, and capture code. ScreenshotNeo is the first alternative to try for that use case: it removes supported cookie-consent banners, newsletter popups, and chat widgets before capture, and only clean shots are billed. It is a screenshot API and MCP server for developers, rather than a replacement for a test framework when the job is to exercise application behavior.

Or skip the browser setup

One GET request returns an image or PDF. The cURL example below saves a WebP capture of the target URL; the same API also accepts PNG and JPEG output options. See the ScreenshotNeo API documentation for authentication and request parameters.

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

With this route, supported cookie banners, popups, and chat widgets are removed before the shot. Bot checks, blank pages, timeouts, failed loads, and cache hits cost nothing; response headers identify the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. The Free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 shots.

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

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.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshoot common screenshot problems

The expected element is missing or detached

  • Puppeteer: A selector may not have appeared yet, or the page may have replaced the element after you selected it. Wait for the selector at the appropriate state and reacquire the handle if it becomes detached; element screenshot capture throws for detached DOM elements.
  • Cypress: The app may not have reached the expected state when the screenshot command runs. Add appropriate test synchronization and confirm that the element exists before capturing.

The screenshot is incomplete or unexpectedly short

  • Check whether you requested a viewport image or a full-page capture. Those are distinct capture scopes in both tools.
  • For content that loads only after scrolling, wait for that content to render before capture. Puppeteer’s element method scrolls its selected element into view, but that does not imply every lazy-loaded item elsewhere on the page has loaded.
  • Check the requested clip or element bounds if the image excludes part of the target.

The image changes between runs

  • Make timers, CSS animations, data, fonts, and page readiness consistent where possible.
  • For Cypress, inspect screenshot defaults and callbacks, and account for its documented asynchronous capture boundary.
  • Do not treat a visual difference as a regression until you have ruled out changing page content and browser configuration.

Automatic failure screenshots are absent

Confirm that the run is using cypress run. Cypress documents automatic failure screenshots for that mode, not for cypress open. Also check project screenshot settings and the CI artifact collection path.

The page never reaches the chosen navigation wait

A page with continuous background requests may not become network-idle. Select a wait condition appropriate to the site or wait for the specific content needed for the screenshot. A navigation event alone does not necessarily mean all visually relevant content is ready.

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.

Performance, reliability, and cost considerations

The official sources summarized here do not provide head-to-head timings, resource measurements, screenshot-quality tests, or comparative reliability results. Do not choose one on the assumption that it is inherently faster or more accurate. For a project decision, validate its actual pages in the browser and CI configuration you plan to use, including dynamic content and the artifact retrieval path.

For self-hosted capture, factor in the browser runtime and the work your team owns: setup, orchestration, retries, storage, and making artifacts accessible. Cypress packages capture into its test workflow; Puppeteer gives a script direct control over capture calls and paths. These are operational trade-offs, not documented price comparisons. If a request-and-response service better matches the task, compare API usage and plan limits against expected volume; ScreenshotNeo offers 1,000 shots a month free without a card, with paid plans from $5 for 3,000.

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

Which should you use?

  • Choose Puppeteer for a browser-driving script or service whose deliverable is a page or element image, especially when direct capture options and output paths are central.
  • Choose Cypress when screenshots are part of Cypress tests and automatic failure capture during cypress run, Cypress configuration, or the existing test artifact workflow is important.
  • Try ScreenshotNeo first when you want a screenshot or PDF from a URL without managing browser setup; supported consent banners and widgets are removed, and only clean shots are billed.

For a visual regression workflow, decide how to stabilize clocks, animation, fonts, data, and browser versions before comparing images. The documentation establishes useful capture controls, but it does not show a universal winner for screenshot fidelity or stability.

Frequently Asked Questions

Does Cypress take screenshots automatically when I run tests?

It can take automatic screenshots on test failure in cypress run; that automatic behavior is not documented for cypress open.

Can Puppeteer capture an element rather than a whole page?

Yes. ElementHandle.screenshot() captures an element, scrolling it into view if needed; it throws if the element has been detached from the DOM.

Do I need Cypress Cloud to capture screenshots?

No. Cloud is a companion artifact viewing and sharing service; screenshot capture itself does not require it.

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

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.

Read next

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.