What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Call cy.screenshot() at the point in a Cypress test where you want to capture the application. By default, Cypress saves the image under cypress/screenshots. Choose capture: 'viewport' for the visible application area, capture: 'fullPage' for a page from top to bottom, or capture: 'runner' when the Cypress Command Log should appear in the image. Cypress also captures failed tests automatically during cypress run, but not during cypress open.
Take a screenshot from a Cypress test
Use the cy.screenshot() command after the page has reached the state you want to inspect. It can capture the application under test without an argument, or you can give the output a descriptive name:
cy.screenshot('checkout-state')
You can also call it from a selected element to capture that element:
cy.get('.post').screenshot()
The command accepts an optional filename and an options object. A useful name describes the state or point in the test, such as checkout-state, rather than a generic name that is hard to identify among other artifacts.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →#1 Best Overall
Cypress screenshot capture is asynchronous. The Cypress API notes that it takes around 100 ms; the application may change during that interval. If a screenshot follows a failure, it may therefore show a nearby state rather than the exact instant the failed command was issued. Place deliberate screenshots after the test has reached a stable state, and interpret automatic failure captures with that timing in mind.
Choose the capture area
The capture option determines what the image includes. Select it based on whether the test is documenting the user’s visible screen, a long page, or debugging context from Cypress itself.
| Capture value | What appears | When it is useful |
|---|---|---|
viewport |
The current application viewport | Documenting the visible state a user would see at that point in the test |
fullPage |
The application from top to bottom; Cypress scrolls and stitches captures together | Inspecting a long page beyond the visible viewport |
runner |
The browser viewport including the Cypress Command Log | Sharing application state together with test-runner context for debugging |
Examples:
cy.screenshot('page', { capture: 'fullPage' })
cy.screenshot('visible-area', { capture: 'viewport' })
cy.screenshot('with-runner', { capture: 'runner' })
Full-page stitching can affect fixed or sticky content: inspect the resulting image to confirm those elements appear as intended. For viewport captures, clip can restrict the image to a pixel rectangle. The blackout option accepts selectors for elements to cover in viewport captures; blackout is ignored for runner captures.
Name, locate, and preserve screenshot files
The default screenshotsFolder is cypress/screenshots. Cypress organizes a named capture in a directory relative to the spec. A path included in the filename can create nested folders. If the same name is used more than once, Cypress adds numbered suffixes unless overwrite: true is set in the options.
Free tools Windows power users keep installed
One-click scans. No signup required.
Cypress clears configured asset folders before cypress run by default because trashAssetsBeforeRuns defaults to true. This behavior applies to the contents of configured screenshot, video, and download folders, including nested subfolders. To preserve existing assets, set trashAssetsBeforeRuns: false. Be deliberate in CI: retaining files can make an older artifact look like output from the latest run.
Rank #2
Generated screenshots are test artifacts, not usually source files; Cypress documentation recommends excluding generated asset folders from source control. If automation needs the final resolved file path, use screenshot callbacks or the after:screenshot Node event.
Configure automatic screenshots when tests fail
During cypress run, Cypress automatically takes screenshots when a test fails by default. This automatic failure capture does not happen in cypress open. The default screenshot uses runner capture, which includes the browser viewport and Cypress Command Log.
The following configuration shows the documented defaults:
PC 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 & 11Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware match// cypress.config.js
const { defineConfig } = require('cypress')
module.exports = defineConfig({
screenshotOnRunFailure: true,
screenshotsFolder: 'cypress/screenshots',
})
Set screenshotOnRunFailure: false to disable automatic captures. You can also set shared screenshot defaults in a support file with Cypress.Screenshot.defaults(). Use configuration when the same capture behavior should apply across tests; pass options to an individual cy.screenshot() call when only one capture needs different behavior.
Rank #3
Make captures more stable and useful
Cypress disables timers and CSS animations by default while taking screenshots. This can reduce visual changes during capture, but it does not make every page deterministic: asynchronous application updates can still occur during the capture window. In tests with time-sensitive UI, consider whether the state is stable before requesting the screenshot and whether an animation or timer is part of what you intend to inspect.
- Take a manual screenshot at a meaningful checkpoint when you need a named artifact tied to a known point in a test.
- Use a viewport capture when the visible application state is the evidence you need; use full-page capture for content below the fold.
- Use runner capture when the command log is important to diagnosing a test failure.
- Review stitched full-page output for fixed or sticky elements, and use viewport blackout selectors when sensitive elements should be obscured.
These choices affect what a screenshot means. A runner image is not just a larger application capture: it includes Cypress debugging context. A full-page image is a stitched result, not a single untouched viewport.
Find screenshots from local and CI runs
For local runs, inspect the configured screenshotsFolder (by default, cypress/screenshots) and the spec-relative directory Cypress creates for the test. Remember that a new cypress run may clear configured asset folders before saving the latest results.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsIn recorded CI runs, Cypress Cloud can display screenshots alongside test results. A CI provider or local build interface may also expose screenshots as build artifacts. Where the CI job stores them depends on that job’s artifact configuration; the Cypress screenshot folder is the place to look when it is preserved or uploaded.
Rank #4
Troubleshoot common screenshot problems
No screenshot appears after a failed test
First check how the test was started. Automatic failure screenshots occur in cypress run, not cypress open. If you are running headlessly, check that screenshotOnRunFailure has not been set to false, and then inspect the configured screenshot folder.
Earlier screenshots disappeared
By default, Cypress clears configured asset folders before a run. Check trashAssetsBeforeRuns; set it to false if preserving earlier files is intentional. In CI, also ensure stale files cannot be confused with the current run’s artifacts.
The screenshot has an unexpected name or location
Check the filename passed to cy.screenshot(), any path included in that filename, and the configured screenshotsFolder. Cypress creates spec-relative directories, can create nested folders for a supplied path, and adds numbered suffixes for duplicate names unless overwrite: true is used.
Recommended Free Tools
The capture does not match the exact failed moment
Screenshot capture is asynchronous and the application can update while Cypress takes the image. The API notes an approximate capture time of 100 ms, not a guarantee that the screenshot freezes the precise instant of a failure. Use a manual capture at a stable checkpoint when that is more useful, and treat failure screenshots as nearby diagnostic evidence.
A long-page capture looks different around sticky content
fullPage scrolls and stitches captures together. Inspect the output for fixed or sticky elements; for a screenshot of just the currently visible state, use capture: 'viewport' instead.
Sensitive elements still appear in a screenshot
For viewport captures, use blackout selectors to cover matching elements. That option is ignored for runner captures, so choose a viewport capture if obscuring matching page elements is required.
Or skip the browser setup
If you need a screenshot of a public page rather than a Cypress test artifact, ScreenshotNeo is a website screenshot API and MCP server. It is not a replacement for Cypress assertions or test-runner failure captures; it is an option for requesting page screenshots directly over HTTP.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →One cURL request can save a screenshot. See the ScreenshotNeo API documentation for request options.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Equivalent Python request:
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)
Equivalent Node.js request:
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
- Cookie banners and consent dialogs are accepted or removed before capture, alongside known newsletter popups and chat widgets; each cleanup step can be turned off.
- Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed. Response headers identify the page verdict and billing status.
- An MCP server provides
take_screenshot,get_page_info, andcapture_pdftools for AI agents and MCP clients. - The Free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots. Every feature is available on every plan.
Sign up for ScreenshotNeo’s free plan to get 1,000 screenshots a month with no card.
Frequently Asked Questions
Can I use a Cypress screenshot as a visual-regression baseline?
A screenshot command saves an image artifact; the Cypress screenshot documentation covered here does not establish a baseline-comparison workflow. Treat capture and visual comparison as separate requirements.
Does a screenshot from Cypress include the Cypress Command Log?
Only runner capture includes the browser viewport with the Cypress Command Log; viewport and full-page captures target the application.
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.

