Add visual testing by capturing named screenshots at stable Selenium checkpoints, comparing each capture with an approved baseline, and reviewing the differences before accepting any new baseline. For a documented hosted workflow, Percy provides Selenium integrations; you can also build a self-managed comparison pipeline, but that means owning the image storage, diff reporting, and review process.
What visual testing adds to a Selenium suite
Functional assertions verify behavior—such as whether a button submits a form. Visual testing checks the rendered appearance of a selected screen against an image the team previously accepted. It can flag changes in layout, styling, typography, colors, and other visible details that functional assertions may not catch. Applitools describes this as regression testing for screens that should not have changed unexpectedly: Applitools documentation.
A visual difference is a signal to investigate, not a diagnosis. It may reflect an intended design update, a regression, or rendering variation. Review the diff and decide whether to fix the UI or approve a new baseline.
Choose meaningful checkpoints before adding snapshots
Capture screens that represent important, reproducible user states—not every click. Useful starting points include:
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errors#1 Best Overall
- Grafco Ishihara Test Chart Book
- Package Info: Each
- Includes four special plates for tests to determine the kind and degree of defect in color vision.
- Image may not reflect actual product sold. Please read description carefully.
- GHF1254
- A key page after its primary content has loaded.
- An important form in a representative state, such as empty or populated.
- A meaningful error or success state.
- A representative narrow or responsive layout.
Give each capture a name that identifies the page and state. Add the snapshot call after Selenium has navigated and interacted with the page to reach that state. BrowserStack’s Java and Python guides demonstrate named snapshot calls in Selenium tests: Java integration and Python integration.
Stabilize the page before capture
Uncontrolled page state creates noisy comparisons. Before taking a snapshot:
- Wait for the specific content that matters, rather than relying only on a fixed sleep.
- Use predictable test data and repeatable navigation.
- Where your test setup supports it, disable or control animations and account for dynamic regions such as timestamps or rotating content.
- Make the viewport and other relevant browser conditions consistent between runs.
These are reliability practices, not a universal Selenium or Percy API prescription. Check the current SDK documentation for supported capture controls and syntax.
Integrate Percy with Selenium
Percy is a hosted visual-testing service with documented Selenium integrations. The general flow is to configure the project, reach a UI state in Selenium, take a named snapshot, run the test as part of a Percy build, then inspect the resulting comparison.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Rank #2
- individuals with color vision defect should see a different figure from individuals with normal color vision.
- Makes use of the peculiarity that in red-green blindness, blue and yellow appear remarkably bright compared with red and green
- Diagnostic plates: intended to determine the type of color vision defect
- Ishihara Test Chart Books for Color Deficiency 24 Plates with usar manual
Java
Follow the current BrowserStack Percy Java setup guide for project configuration and the Maven dependency. Add a named capture where the browser is already at the intended state:
PercySDK.screenshot(driver, "Checkout - validation error");
The guide uses the Percy SDK call PercySDK.screenshot(driver, name). Dependency versions and setup details can change, so use the live guide rather than copying a frozen dependency version into a long-lived project.
Python
The current BrowserStack Percy Python guide documents installing the Percy CLI and percy-selenium, then taking a named snapshot after Selenium reaches the desired state:
percy_snapshot(browser, "Empty Todo State")
Use the guide’s current instructions to install dependencies and launch a Percy build around your test command. It recommends beginning with one browser and extending coverage after the setup is stable. Confirm the current syntax and Selenium API compatibility in the live guide.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, 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 minuteRank #3
- Vanishing design: Only people with good color vision can see the sign. If you are colorblind you won’t see anything.
- Transformation design: Color blind people will see a different sign than people with no color vision handicap.
- Hidden digit design: Only colorblind people are able to spot the sign. If you have perfect color vision, you won’t be able to see it.
- Classification design: This is used to differentiate between red- and green-blind persons. The vanishing design is used on either side of the plate, one side for deutan defects an the other for protans.
Establish and review the baseline
The first capture establishes a candidate reference; it cannot tell you whether a difference is a regression until a baseline has been approved. In the Percy workflow, new snapshots are compared with previously approved baselines and changes are presented for review: Percy review documentation.
- Run the test to produce its initial snapshots.
- Inspect the screens and approve them only if they represent the intended UI.
- On later runs, review each meaningful difference against the approved baseline.
- For an intentional design change, approve the updated baseline. For an unintended change, leave the baseline unchanged, fix the UI, and rerun.
Avoid approving an entire build without reviewing its changes; doing so can turn an unnoticed regression into the new reference.
Hosted service or self-managed image comparison?
Both approaches can capture screenshots at Selenium checkpoints. The difference is who operates baseline management and review.
| Area | Hosted service such as Percy | Self-managed comparison |
|---|---|---|
| Capture | Selenium test calls an SDK at named checkpoints. | Selenium saves screenshots at chosen checkpoints. |
| Baselines and review | The service manages builds, comparisons, and a review or approval workflow. | Your team chooses image storage, comparison method, diff presentation, and approval process. |
| Browser coverage | Percy can render snapshots across configured browsers; platform rendering can affect diffs. | Depends on your browser execution and image-comparison infrastructure. |
| Maintenance | Depends on SDK and service behavior; check current documentation and plan limits. | Your team owns noise control, image storage, reporting, and maintenance. |
A self-managed route is viable when you need control over the pipeline and can maintain it. The specific comparison algorithm, storage system, and review interface are engineering choices; the available documentation here does not establish one complete self-hosted recipe.
Recommended Free Tools
Rank #4
- This illustrated & interactive study guide for the National Counselor Exam (NCE) uses images, colors, mnemonics, and humor to engage brains in effective study.
- 150+ page activity book including coloring book pages, fill in the blank sheets, and tear-out flashcards with content addressing all domains covered in the NCE + CPCE counselor exams.
- Full size 8.5x11, spiral-bound for lie-flat studying.
- Printed on premium, 80lb textured paper you can color and highlight with no bleed.
- Drawn by (human!) hand. Printed and bound in the USA.
Expand browser and viewport coverage deliberately
Start with a small set of high-value states in one browser. Once snapshots are stable, add browsers and viewport sizes that matter to your users. More environments can expose real rendering differences, but they also create more snapshots to review.
Percy notes that system fonts, form controls, and scrollbars can differ by operating system, and each browser snapshot counts toward screenshot usage. Treat platform-specific diffs as review items rather than automatically classifying them as product defects. See Percy’s cross-browser documentation.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Troubleshoot common visual-test problems
Snapshots differ on every run
Check whether the page is captured before important content settles, whether test data changes, or whether animations and dynamic regions vary. Wait for relevant content and make the test state repeatable; use capture controls supported by your SDK where available.
The first comparison shows many differences
There may not yet be an approved baseline, or the initial snapshot may represent an unintended state. Inspect the captured screen, verify the test reached the right page and state, and approve a baseline only after confirming it is correct.
Best Value
A diff appears only in one browser or operating system
Check for platform-dependent rendering such as fonts, form controls, and scrollbars. Decide whether the difference is an acceptable environment variation or a user-visible regression before approving a new baseline.
The Selenium capture call fails or is not recognized
Verify that the language-specific SDK and project setup match the current integration guide, and that your test uses the documented call for the installed version. The Java and Python guides are the appropriate references for their respective integrations; avoid relying on stale package versions or copied setup snippets.
Or skip the browser setup
If you need a screenshot of a URL without wiring a browser capture flow into this particular task, ScreenshotNeo is a website screenshot API and MCP server for developers. A single GET request returns a PNG, JPEG, WebP, or PDF. This captures a URL on demand; it does not replace Selenium checkpoints, baselines, or visual-diff review in an automated regression suite.
For example, save a WebP screenshot of the target page with cURL:
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for request options. Cookie banners, popups, and chat widgets are removed before capture; failed loads, blank pages, and bot checks are not billed. Its MCP server gives AI agents screenshot tools. The free plan includes 1,000 shots a month with no card, and paid plans start at $5 for 3,000. Sign up for ScreenshotNeo’s free plan.
Frequently Asked Questions
Can visual testing replace Selenium assertions?
No. Keep functional assertions for behavior and use visual comparisons to detect changes in rendered appearance.
Do all visual differences mean a bug?
No. A difference may be intentional or caused by browser and operating-system rendering; review it before changing the baseline.
How many checkpoints should I add at first?
Start with a small number of important, stable page states, then expand once the snapshots are repeatable.
Free tools Windows power users keep installed
One-click scans. No signup required.
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.




