Free tools Windows power users keep installed
One-click scans. No signup required.
A blank Cypress screenshot does not have one universal cause. First determine whether the application was actually blank when Cypress captured it, or whether the page looked correct while the capture failed because of timing, capture mode, browser state, scrolling, or the test environment. Identify the screenshot type, assert that the intended UI is ready, make the capture mode explicit, then compare browsers and local/CI runs before applying a workaround.
Start by identifying what “blank” means
Before changing Cypress configuration, classify the artifact. A screenshot can be empty because the app had not rendered, because the command captured a different region than expected, or because the browser could not produce a usable image. These branches require different fixes.
- Blank application: the page itself was empty, still loading, redirected, or showing an error at the instant of capture.
- Blank artifact: the page looked correct in the browser or video, but the saved image is white, gray, one pixel high, or otherwise incomplete.
- Wrong artifact: the file came from a different run, a failure hook, or a different screenshot mode than you intended.
Record your Cypress version, browser and version, operating system, local or CI context, exact command, screenshot options, and whether the page uses canvas or WebGL. Those details determine which branches are plausible.
Manual versus automatic screenshots
Automatic failure screenshots
Cypress takes automatic failure screenshots during cypress run by default. They are not automatically produced in cypress open. A failure screenshot is captured as the Cypress runner view, so it includes the browser viewport and Cypress Command Log rather than being equivalent to a normal application-only capture.
#1 Best Overall
- 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
Manual captures with cy.screenshot()
Use cy.screenshot() when you need a controlled checkpoint during a test. Confirm the screenshot directory and filename, especially when retries or parallel CI jobs can create similarly named files. A manual capture in open mode is not the same artifact as an automatic failure image from run mode.
cy.get('[data-testid="dashboard"]').should('be.visible');
cy.screenshot('dashboard-ready', {
capture: 'viewport',
overwrite: true
});
The assertion is intentionally application-specific. It proves that a meaningful element is visible before the image is taken; an arbitrary sleep does not prove that the page reached the required state.
Confirm the application is ready at capture time
Cypress captures the state that exists at the instant the command runs. A route may have loaded its shell while data, fonts, images, transitions, or client-side hydration are still in progress. A screenshot can therefore be a valid image of an intermediate state.
Wait for observable application state
Prefer assertions tied to the UI or the request that supplies it. For example:
Recommended Free Tools
cy.intercept('GET', '**/api/orders').as('orders');
cy.visit('/orders');
cy.wait('@orders').its('response.statusCode').should('eq', 200);
cy.get('[data-testid="orders-table"]')
.should('be.visible')
.and('contain.text', 'Order');
cy.screenshot('orders-ready');
If the page has a loading indicator, assert that it disappears and that the replacement content is present. If a transition or lazy-rendered component is genuinely required, wait on a stable condition rather than choosing a delay that only works on one machine.
Rank #2
- 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
Use video or Test Replay as a timeline
When video or Test Replay is available, inspect the frames around the screenshot command. If the UI is blank there too, investigate routing, failed requests, authentication, JavaScript errors, or test data. If the UI is rendered in the recording but the image is blank, continue with capture-mode and browser checks.
Make the capture mode match your goal
| Mode | What it captures | Typical diagnostic use |
|---|---|---|
viewport |
The current application viewport. | Check whether the visible page itself renders correctly. |
fullPage |
The application from top to bottom, using scrolling and stitched screenshots. | Capture a long document; investigate scroll or sticky-element artifacts. |
runner |
The browser viewport including Cypress Command Log. | Inspect a failure in the Cypress runner; this is the automatic failure mode. |
These outputs are not interchangeable. A full-page capture scrolls the application and stitches multiple images. Fixed or sticky elements can consequently appear more than once. For a diagnostic run, switch to an explicit viewport capture or target a single element:
cy.get('[data-testid="invoice"]')
.should('be.visible')
.screenshot('invoice-element');
cy.screenshot('current-viewport', { capture: 'viewport' });
Check that the file you open is the artifact produced by this invocation, not an older full-page or runner image left in the screenshots folder.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Chromium: check for a paused Cypress-tab renderer
Cypress documents a Chromium-specific condition in which the renderer process for the Cypress tab is paused. Opening a new tab, commonly through a link with target="_blank", can leave Cypress unable to capture its own tab. Cypress attempts to activate the Cypress tab during capture; focus behavior can be particularly noticeable in open mode.
How to isolate it
- Find the navigation or click immediately before the blank image.
- Re-run without the new-tab action, or change the test flow so the destination is visited in the same tab for the diagnostic run.
- Compare the screenshot and video around that navigation.
- If you use the Cypress browser extension, keep it enabled while testing the documented focus behavior; disabling it can make Cypress force the main tab to the front and steal focus in open mode.
This is a Chromium condition, not an explanation for every blank screenshot and not a reason to apply the same workaround in Firefox automatically.
When scrolling and rendering are out of sync
Element and full-page screenshots may interact with scrolling, lazy rendering, and CSS movement. A repository report opened January 10, 2024 described an element image that was one pixel high or partly gray when scrolling had not finished. The reported setup was Cypress 13.6.1, Node 18.15.0, Windows 11, and Chrome 120. The reporter used scrollIntoView({ duration: 750 }) followed by a one-second wait.
Rank #3
- 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.
That report is a historical, case-specific example rather than confirmation of a current general defect. First ensure that the element has reached its intended position and that its content is stable:
cy.get('[data-testid="chart"]')
.scrollIntoView()
.should('be.visible')
.and(($el) => {
expect($el[0].getBoundingClientRect().height).to.be.greaterThan(10);
});
cy.get('[data-testid="chart"]').screenshot('chart');
If a fixed delay is temporarily unavoidable, document why and replace it with a condition-based wait when the application exposes one. Re-test with a current Cypress release before treating an old workaround as a permanent fix.
Canvas, WebGL, and browser-specific rendering
Graphics-heavy content can follow a different rendering path from ordinary HTML. A historical issue opened October 11, 2022 described a blank screenshot of a Mapbox GL/WebGL map in Firefox 91.7.0 ESR with Cypress 9.5.2, while the map appeared in video and Electron. It asked whether upgrading Cypress changed the result; it does not establish that current Firefox or all WebGL screenshots are broken.
- Run the same test in another supported browser and compare the result.
- Check whether the canvas or map appears in video or Test Replay.
- Record the exact Cypress and browser versions before choosing a workaround.
- Reduce the test to a page containing only the problematic graphics component.
A browser change that makes the image appear is a useful isolation result, not proof that the application or every Firefox capture is defective.
Local, CI, viewport, and runner differences
Cypress troubleshooting guidance recommends comparing browsers and environments rather than assuming that CI caused the failure. Use the same fixed viewport and, for visual comparisons, generate and compare images in the same environment.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Rank #4
- 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
Run a controlled comparison
- Run the minimal test locally with a fixed viewport.
- Run it in CI with the same browser family and viewport.
- Repeat in another supported browser.
- Compare the image with video or Test Replay and save the exact command and versions.
- Remove unrelated routes, intercepts, plugins, and test data until the failure is smallest.
The Cypress Command Log can add performance pressure in some situations. To isolate runner UI effects, try:
CYPRESS_NO_COMMAND_LOG=1 cypress run
cypress run --no-runner-ui
These are diagnostic options. With the Command Log disabled, screenshots and videos do not include it; they do not repair an application canvas that failed to render.
A complete diagnostic checklist
- Identify the artifact: manual or automatic,
cypress runorcypress open, expected folder and filename. - Prove readiness: assert meaningful content or a completed network-backed state before capture.
- Inspect the timeline: use video or Test Replay to see what the browser displayed at that moment.
- Make options explicit: test
viewport,fullPage, or an element capture separately. - Check tabs: in Chromium, investigate a recent
target="_blank"navigation. - Check movement: wait for transitions, lazy content, and scrolling to settle using observable conditions.
- Compare environments: fixed viewport, local versus CI, and more than one browser.
- Reduce the case: create the smallest reproducible test before consulting historical issue reports.
Common symptoms and targeted fixes
| Symptom | Likely branch | Next action |
|---|---|---|
| White image and blank video frame | Application or navigation was not ready. | Assert route data and visible content; inspect failed requests and errors. |
| Video shows the page, image is white in Chromium | Renderer focus, capture mode, or browser path. | Check new-tab navigation, use explicit viewport capture, compare browsers. |
| Only full-page image is wrong | Scroll-and-stitch or lazy-render timing. | Try viewport/element capture and wait for stable positions. |
| Element image is one pixel or gray | Scroll had not completed; historical reports show this in specific setups. | Assert geometry and visibility, reproduce on current Cypress. |
| Only WebGL/canvas content is missing | Browser-specific graphics path. | Compare supported browsers and inspect video; minimize the test. |
| Only CI fails | Environment, viewport, resource, or timing difference. | Match versions and viewport, then reproduce locally and in a minimal CI case. |
Or skip the browser setup
If your goal is a clean website image rather than a Cypress test artifact, ScreenshotNeo provides a one-request screenshot API and MCP server. It accepts consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and each response reports the page verdict and billing status in headers.
cURL (see the ScreenshotNeo documentation):
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Python:
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
Node.js:
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
ScreenshotNeo also offers full-page and element capture, device and retina settings, custom CSS and JavaScript, waits, request blocking, cookies and headers, PDF output, caching, signed links, asynchronous webhooks, bulk capture, usage reporting, and an MCP server with take_screenshot, get_page_info, and capture_pdf for AI clients. The Free plan includes 1,000 shots per month without a card; paid plans start at $5 for 3,000 shots. Create a free ScreenshotNeo account.
FAQ
Why is a Cypress screenshot blank but the browser looks fine?
That combination points toward capture mode, tab renderer state, scrolling, or browser-specific rendering rather than an obviously blank application. Use video or Test Replay and a minimal reproduction to separate those possibilities.
Does cy.screenshot() work in cypress open?
Yes, manual screenshots use cy.screenshot(). Automatic failure screenshots are the behavior associated with cypress run by default.
Best Value
- 【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.
Should I add a long sleep?
Only as a temporary diagnostic. An assertion tied to the required UI state is more reliable across machines and CI.
Can a blank screenshot prove that the page is broken?
No. It may be a faithful image of an intermediate application state or a capture-path failure. Compare the image with the browser timeline and another capture mode.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsFrequently Asked Questions
Why is a Cypress screenshot blank when the browser looks fine?
That usually warrants checking capture mode, tab renderer state, scrolling, and browser-specific rendering with video or Test Replay and a minimal reproduction.
Does cy.screenshot() work in cypress open?
Yes. Manual screenshots use cy.screenshot(); automatic failure screenshots are produced by cypress run by default.
Should I fix blank screenshots with a long sleep?
Use a condition-based assertion whenever possible. A fixed delay is only a temporary diagnostic for genuinely time-based rendering.
Can a blank screenshot prove that my page is broken?
No. It can represent an intermediate app state or a capture-path problem, so compare the image with the browser timeline and another capture mode.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Quick Recap
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.

