Recommended Free Tools
Run npx playwright test --update-snapshots (or npx playwright test -u) against the tests you intend to change. Playwright refreshes mismatched reference files, after which you must inspect the diff, verify the browser environment, and commit only deliberate baseline changes. Add a test-file, project, or grep filter when you do not want to regenerate the whole suite.
The basic command
From the project directory, run:
npx playwright test --update-snapshots
The short form is:
npx playwright test -u
With no value supplied, --update-snapshots uses the changed mode: snapshots are rewritten when the new result does not match the stored reference. Matching snapshots are left alone. The same flag applies to visual screenshots, text or binary snapshots, and ARIA snapshots.
Use the normal Playwright filters to limit the update. For example:
# One test file
npx playwright test tests/account.spec.ts --update-snapshots
# One configured project
npx playwright test --project=chromium tests/account.spec.ts --update-snapshots
# Tests whose title or file matches a regular expression
npx playwright test -g "checkout" --update-snapshots
Filtering is the safest default after a known UI change: it reduces review noise and prevents an unrelated test from receiving a new baseline accidentally.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →#1 Best Overall
- Easily store and access 2TB to content on the go with the Seagate Portable Drive, a USB external hard drive
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
Choose the update mode deliberately
Playwright accepts an explicit value when you need behavior other than the default.
| Mode | What it changes | Use it when | Review burden |
|---|---|---|---|
changed |
Replaces snapshots that differ; this is the default for the flag without a value. | A UI change is intentional and you want to preserve matching baselines. | Focused; usually the best choice. |
all |
Regenerates every snapshot, including ones that already match. | You intentionally rebuilt the entire baseline set, such as after a controlled browser or rendering change. | Highest; every file requires scrutiny. |
missing |
Creates absent snapshots but does not rewrite existing ones. | New tests or new snapshot names need references while existing coverage must remain untouched. | Focused on newly created files. |
none |
Prevents snapshot updates. | You want to force comparison-only behavior in a shared command or CI job. | No baseline changes. |
Examples:
npx playwright test --update-snapshots=changed
npx playwright test --update-snapshots=all
npx playwright test --update-snapshots=missing
npx playwright test --update-snapshots=none
Do not use all merely to make a failing run green. It can hide a broad environment problem by rewriting references that were actually correct.
What Playwright calls a snapshot
Visual screenshots
await expect(page).toHaveScreenshot() creates a reference image on its first execution and compares future executions with it. PNG is the default format. A snapshot name ending in .webp requests lossless WebP instead. The expected image, the newly captured actual image, and a diff image are presented when a comparison fails.
import { test, expect } from '@playwright/test';
test('account page', async ({ page }) => {
await page.goto('/account');
await expect(page).toHaveScreenshot('account.png');
});
Text, binary, and inline snapshots
expect(value).toMatchSnapshot(snapshotName) compares text or arbitrary binary data. ARIA snapshots use toMatchAriaSnapshot; the same update flag updates their references. Inline snapshot changes can be written back to source using an update-source method:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Rank #2
- Easily store and access 1TB to content on the go with the Seagate Portable Drive, a USB external hard drive.Specific uses: Personal
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop. Reformatting may be required for Mac
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
npx playwright test --update-snapshots --update-source-method=3way
The documented source-update methods are patch (the default), 3way, and overwrite. Choose the method your team has agreed to use, and review the source diff just as carefully as an external snapshot file.
A safe update workflow
- Confirm the application change. Make sure the CSS, component, content, or accessibility change is intentional. A snapshot update should record that decision, not make an unexplained test failure disappear.
- Pin the test scope. Start with a test file, project, or
-gexpression. If several projects render different devices or browsers, update each deliberately. - Run the update command. Use
changedfor a normal UI revision,missingfor newly introduced references, andallonly for a planned rebuild. - Inspect the visual evidence. In UI Mode, compare expected, actual, and diff images. Look for shifted dimensions, fonts, text wrapping, missing images, color changes, and unexpected overlays.
- Inspect the filesystem diff. Playwright normally stores images in a per-test directory such as
example.spec.ts-snapshots. Check that only the intended files and, for inline snapshots, only the intended source lines changed. - Run comparison mode again. Re-run without an update flag (or with
--update-snapshots=none) to prove the new references pass without rewriting anything. - Commit the baselines with the code. Keep the snapshot directory in version control. A component change without its intentional reference image leaves other developers and CI comparing against the wrong contract.
Stabilize rendering before accepting a new baseline
Screenshot output can vary with the host operating system, browser version, browser settings, hardware, power source, and headless mode. Generate and compare baselines in the same controlled environment whenever possible. If a local update passes but CI changes the image again, treat the environment mismatch as the first suspect.
Remove volatile page content
Dynamic timestamps, rotating ads, random identifiers, live counters, and remote data can produce meaningless diffs. Mask unstable regions or apply a stylesheet with stylePath so the comparison covers the layout you actually intend to protect. Stabilize data and network responses before increasing a tolerance.
Use tolerances only for understood variation
maxDiffPixels limits the number of changed pixels, maxDiffPixelRatio limits their proportion, and threshold controls pixel color sensitivity. These settings are not repairs for an unknown difference. Document why a tolerance is safe and keep it narrow enough to catch a real regression.
Rank #3
- 【Upgraded version】 - The mirror logo strip is combined with the striped non-slip design. The rounded corners of the shell are more suitable for holding. The strips play a heat dissipation function to ensure a stable and fast transmission process.
- 【Ultra-thin and quiet】 - The motherboard adopts JMicron 578 noise-free solution, giving you a quiet working environment. Lightweight and portable size designed to fit in your pocket for easy portability.
- 【Ultra-Fast Data Transfers】 - Pairing this external hard drive with JMicron 578 solution USB 3.0 and USB 2.0 interfaces enables blazing-fast data transfer. It boasts theoretical read speeds of up to 125MB/s and write speeds of up to 103MB/s.
- 【Plug and Play】 - With no software to install, just plug it in and the drive is ready to use.The hard disk chip is wrapped with an aluminum anti-interference layer to increase heat dissipation and protect data.
- 【What You Get】 - 1 x Portable Hard Drive, 1 x USB 3.0 Cable, 1 x User Manual, Gift-type shell packaging ,Three-year manufacturer's warranty and free technical support services.
Keep the capture conditions consistent
Use the same browser project, viewport, device scale, fonts, locale, timezone, color scheme, and headless setting for baseline generation and comparison. A different font installation or browser revision can alter wrapping and antialiasing even when application code has not changed.
Why snapshots change on CI
Different browser or operating-system build
CI may use a different Playwright browser revision, OS font set, or graphics stack. Align the Playwright version and installed browsers, and run baseline generation in the same CI image used for comparisons.
Uncontrolled asynchronous content
A screenshot taken before a request finishes, after a rotating widget changes, or while a lazy image is still loading is not a stable reference. Wait for the application’s settled state, mock nondeterministic responses, and make the data deterministic before updating.
Hidden overlays and transient UI
Cookie notices, chat launchers, animation frames, and hover states can appear only in one environment. Close or mask them intentionally; do not accept a baseline that includes an accidental overlay.
Rank #4
- High capacity in a small enclosure – The small, lightweight design offers up to 6TB* capacity, making WD Elements portable hard drives the ideal companion for consumers on the go.
- Plug-and-play expandability
- Vast capacities up to 6TB[1] to store your photos, videos, music, important documents and more
- SuperSpeed USB 3.2 Gen 1 (5Gbps)
Wrong project or filter
A command that updates Chromium while CI runs WebKit, or that targets a different test file, can produce an apparently mysterious mismatch. Print or verify the project and test selection in the job before changing references.
Power and rendering differences
Headless mode, GPU availability, and host power settings can affect rendering. Standardize these inputs rather than repeatedly regenerating snapshots until one happens to pass.
Common errors and fixes
| Symptom | Likely cause | Fix |
|---|---|---|
| No snapshots changed | The selected tests passed, or the filter did not match the intended tests. | Run the test without the update flag, verify the test title/file, and inspect the test’s snapshot directory. |
| Every screenshot changed | Browser, OS, fonts, viewport, or rendering settings differ. | Align the execution environment; do not use all until the cause is understood. |
| Images contain loading spinners or blank regions | The capture occurred before network or lazy content settled. | Wait for a reliable application selector or state, mock slow data, then rerun. |
| Only CI fails | CI uses different browser binaries, fonts, timezone, locale, or headless settings. | Use the same pinned image and project settings for generation and comparison. |
| Inline snapshot edits conflict | Multiple source changes or an unsuitable source-update method. | Resolve the patch deliberately, or rerun with the team’s chosen patch, 3way, or overwrite method and review the resulting source diff. |
| Unexpected files appear in a pull request | The command was run at too broad a scope or with all. |
Discard unintended files, rerun with a test/project filter, and commit only intentional references. |
Performance, reliability, and repository practices
Updating a large suite costs roughly the same browser time as running that suite, plus image-diff and file-write work. Narrowing by test, project, or grep is the simplest way to make an interactive update fast. Parallel workers can reduce wall-clock time, but they do not make nondeterministic pages reliable; stabilize data first.
Store snapshots beside the test’s normal per-test snapshot directory and review them as code. Avoid replacing a complete baseline set from a laptop with different fonts or browser binaries. In CI, run comparison-only tests on every change and reserve snapshot updates for an explicit, reviewable job or local workflow. Cache dependencies and browser binaries for speed, but invalidate that cache when the Playwright or browser revision changes.
Free tools Windows power users keep installed
One-click scans. No signup required.
Best Value
- 【Plug-and-Play Expandability】 With no software to install, just plug it in and the drive is ready to use in Windows(For Mac,first format the drive and select the ExFat format.
- 【Fast Data Transfers 】The external hard drives with the USB 3.0 cable to provide super fast transfer speed. The theoretical read speed is as high as 110MB/s-133MB/s, and the write speed is as high as 103MB/s.
- 【High capacity in a small enclosure 】The small, lightweight design offers up to 500GB capacity, offering ample space for storing large files, multimedia content, and backups with ease. Weighing only 0.35 Lbs, it's easy to carry "
- 【Wide Compatibility】Supports PS4 5/xbox one/Windows/Linux/Mac and other operating systems, ensuring seamless integration with game consoles,various laptops and desktops .
- Important Notes for PS/Xbox Gaming Devices: You can play last-gen games (PS4 / Xbox One) directly from an external hard drive. However, to play current-gen games (PS5 / Xbox Series X|S), you must copy them to the console's internal SSD first. The external drive is great for keeping your library on hand, but it can't run the new games.
Or skip the browser setup
If you need a rendered reference image rather than a Playwright assertion, ScreenshotNeo returns a screenshot or PDF from one request. It accepts the consent banner like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each cleanup step can be disabled. Bot checks, CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and the response reports the result with X-Page-Verdict and X-Billed headers. It also provides an MCP server for AI clients such as Claude and Cursor.
See the ScreenshotNeo website and API documentation for authentication and options.
cURL
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}`);
For a visual-regression pipeline, its full-page capture, lazy-image loading, CSS-selector element capture, device presets, custom viewport and retina scale, dark mode, masking through custom CSS, JavaScript clicks, wait conditions, request blocking, headers, cookies, authorization, timezone, geolocation, transparent backgrounds, resizing, chosen cache TTL, signed links, asynchronous webhooks, bulk capture of up to 100 URLs per call, usage API, OpenAPI specification, and familiar screenshot-API parameter names can reduce browser orchestration. PDF output supports paper size, margins, landscape mode, and page ranges.
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, and yearly billing gives two months free. Sign up free to start with the 1,000 monthly shots and no card.
Frequently Asked Questions
Should I update snapshots locally or in CI?
Generate them in the same controlled browser and operating-system environment used for comparison, then commit the reviewed files. A local machine with different fonts or browser binaries can create CI-only diffs.
Can one command update only a single snapshot name?
Playwright’s update flag operates on the tests selected by the CLI. Narrow to the relevant test file, project, or grep expression, then use the test’s normal snapshot assertions and review the resulting files.
What should be committed with a changed screenshot?
Commit the intentional application change and its updated per-test snapshot files together, while leaving unrelated generated files and environment-caused diffs out of the change.
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.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minute




