Run your browser tests inside percy exec, add Percy snapshot calls through the SDK for your framework, and pass the Percy project token to the workflow as the PERCY_TOKEN environment variable. Store that token as a GitHub Actions secret, not in your repository. For a static site build, use Percy’s percy snapshot command instead of adding snapshots to browser tests.
How the GitHub Actions workflow fits together
Percy’s CLI wraps your test command and coordinates snapshot uploads; the framework SDK captures named pages or test states. A project token associates those uploads with the right Percy project. Once Percy has a baseline, later builds can be reviewed for visual changes.
- Create or select a Percy web project and copy its project token.
- Add the token to your GitHub repository or organization as an Actions secret, such as
PERCY_TOKEN. - Install the Percy CLI and the SDK for your test framework.
- Add snapshots at the states you want to compare.
- Run the test suite under
percy exec, then review the resulting build in Percy and approve or establish the baseline as needed.
Percy’s GitHub Actions integration guide documents the static-site alternative as well. Its example is useful for understanding the workflow shape, but its action and Node version pins are examples, not universal current recommendations.
Set up Percy for Playwright
Install the CLI and SDK
From the project root, install the packages as development dependencies:
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 minute#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
npm install --save-dev @percy/cli @percy/playwright
The Percy Playwright client library documents the SDK and supported snapshot approaches. Check its current compatibility details against the Playwright version installed in your project.
Add snapshots to a test
Import Percy’s snapshot helper and call it after the page reaches the state you want to compare:
import { test } from '@playwright/test';
import { percySnapshot } from '@percy/playwright';
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 →test('homepage visual state', async ({ page }) => {
await page.goto('https://example.com');
await percySnapshot(page, 'Homepage');
});
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
Replace the example URL and name with your application’s target and a useful snapshot label. Put the call after navigation and any interaction or setup required to reach the intended state. If your suite already uses Playwright’s toHaveScreenshot() assertions, the Percy Playwright repository also documents a drop-in option; check the documented version requirements before adopting it.
Set up Percy for Cypress
Install and import the SDK
Install the CLI and Cypress SDK:
npm install --save-dev @percy/cli @percy/cypress
Import the Percy Cypress support package from your Cypress support file as directed by the Percy Cypress SDK documentation.
Capture a test state
Call cy.percySnapshot() at the point in the test whose appearance matters. For example:
Recommended Free Tools
describe('homepage', () => {
it('captures the loaded page', () => {
cy.visit('https://example.com');
cy.percySnapshot('Homepage');
});
});
Use a descriptive name and place the snapshot after the page has reached the relevant state, including any interactions the test needs to perform.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
Add a GitHub Actions workflow
Create or update a workflow under .github/workflows/. This example assumes a Node project with its dependencies declared in package.json and the Percy project token stored in the repository secret PERCY_TOKEN:
name: Visual tests
on: [push, pull_request]
jobs:
percy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- run: npm ci
- name: Run Playwright tests with Percy
run: npx percy exec -- npx playwright test
env:
PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }}
For Cypress, change the command to npx percy exec -- npx cypress run. If your repository uses a package script or a different test command, put that command after --. The CLI wrapper and environment-variable pattern are also shown in BrowserStack’s Percy Actions guide.
- Keep the token in GitHub Actions secrets and expose it only to the job or step that needs it. Do not commit it to YAML, source files, or logs.
- Use an available, supported Node runtime and action versions for your project; Percy’s example repository contains sample pins rather than a guarantee of current compatibility.
- Pin and periodically update the CLI, SDK, runtime, and workflow actions in line with your project’s compatibility requirements.
Use Percy with a static site build
If you need snapshots of generated pages rather than browser-test states, build the site in Actions and point Percy’s CLI at the generated output directory with percy snapshot. Consult the current command syntax and directory setup in the official integration guide; this workflow does not use the Playwright or Cypress snapshot calls described above.
Choose the right snapshot approach
- Playwright SDK: use
percySnapshot(page, name)to capture browser-test states, or investigate the documented drop-in approach if the suite already relies ontoHaveScreenshot(). - Cypress SDK: use
cy.percySnapshot()at the test states you want to compare. - Static output: use the CLI’s
percy snapshotworkflow when the target is generated site output rather than an interactive test state.
The cited integration and SDK materials document these options but do not establish a quantitative speed or cost comparison between them.
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
Review the baseline and diagnose common problems
No Percy build or uploaded snapshots appear
Check that the step actually runs your test command under npx percy exec -- and that PERCY_TOKEN is available to that step. Percy SDK snapshots are disabled when tests run without Percy; wrapping execution and supplying the token activates upload and build creation.
The token is missing or rejected
Confirm that the GitHub secret name matches the expression in the workflow, that the job exposes it under the exact environment variable PERCY_TOKEN, and that the value belongs to the intended Percy project. Avoid printing the token while debugging.
Playwright baseline discovery does not match the suite
Percy’s example notes that baseline discovery reads Playwright’s default configuration. If you use a custom config path and first-run seeding does not map screenshots as expected, check how the configuration path is supplied and whether the default-config assumption applies to your setup.
The first build is not yet a useful comparison
Establish or approve the baseline in Percy before treating subsequent comparisons as meaningful. For Percy on Automate, the example project says the first run establishes the baseline and must be approved in the dashboard; its documented Automate drop-in also has BrowserStack session requirements.
The workflow fails after copying an example
Check current compatibility for the CLI, framework SDK, Node runtime, GitHub Actions versions, and test framework. Example repositories and integration guides can contain sample version pins that should not be copied blindly into a different project.
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
Or skip the browser setup
If you need a screenshot image rather than Percy’s visual-test baseline and review workflow, ScreenshotNeo can capture a page with one request. Its clean-shot steps accept cookie or consent banners like a visitor and remove more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and the response reports the page verdict and billing status. ScreenshotNeo also provides an MCP server for AI agents and offers 1,000 screenshots per month free with no card; paid plans start at $5 for 3,000.
cURL:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp
Python:
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://example.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
Node.js:
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://example.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
Free tools Windows power users keep installed
One-click scans. No signup required.
See the ScreenshotNeo API documentation for setup and options, or visit ScreenshotNeo to learn about the service. For an MCP client, its tools include take_screenshot, get_page_info, and capture_pdf. This is a screenshot-capture alternative, not a replacement for Percy’s test-state snapshots and visual baseline review.
Sign up for ScreenshotNeo: 1,000 screenshots a month free, no card 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.

