Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

To add visual regression checks to a Playwright suite, install Applitools Eyes, set APPLITOOLS_API_KEY outside your source code, import Applitools’ Playwright fixture, and call eyes.check() after the page reaches a stable state. Then review each reported difference and accept it only if the visual change is intentional. A visual checkpoint complements functional assertions; it does not verify every behavior of your application.

Choose the Applitools SDK that matches your project

Applitools documents Playwright SDK options for TypeScript fixtures and standard usage, as well as Java, C#, and Python. The setup and code below use the JavaScript/TypeScript Fixtures SDK; its import path and fixture pattern are not interchangeable with the other language variants. Choose the instructions for your language in Applitools’ SDK selection guide.

Install Eyes and initialize the Playwright integration

Applitools’ current onboarding guide describes installing @applitools/eyes-playwright and running npx eyes-playwright setup. The setup command can add configuration and an example visual test.

  1. From your Playwright project directory, install the package using the current instructions in Applitools’ Playwright integration guide.

    What’s actually slowing this PC down?

    Pick the symptom - the matching free tool is one click away.

    Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
    #1 Best Overall
    Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter
    • 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.
  2. Run npx eyes-playwright setup if it is supported by the package version you installed. Review the generated configuration and example rather than assuming the command’s output is identical across versions.

  3. Set the API key as APPLITOOLS_API_KEY in your local environment and in your CI provider’s protected secret store. Applitools recommends an environment variable instead of hardcoding the key in project configuration; the key authorizes test runs. See Applitools’ API-key instructions.

Do not commit a real key, put it in a test fixture, or print it in CI logs. Check the live integration guide and the version installed in your project before copying setup commands because package interfaces can change.

Add a visual checkpoint with the Eyes fixture

For the Fixtures SDK, import the Applitools-enhanced test and use its eyes fixture. First navigate and establish the state you want to test; then capture a named checkpoint:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
import { test, expect } from '@playwright/test';
import { test as eyesTest } from '@applitools/eyes-playwright/fixture';

eyesTest('homepage visual check', async ({ page, eyes }) => {
  await page.goto('https://example.com');
  await expect(page.getByRole('heading', { name: 'Example Domain' })).toBeVisible();

  await eyes.check('Homepage', {
    fully: true,
    matchLevel: 'Strict',
  });
});

The visual assertion and the functional assertion have different jobs: the heading assertion checks a specific behavior or condition, while the Eyes checkpoint compares the rendered interface with its baseline. Applitools advises giving eyes.check() calls meaningful names so they are easy to identify in the dashboard. The fixture workflow manages Eyes lifecycle and result collection as described in its integration documentation.

Choose the checkpoint scope and comparison behavior

Scope the checkpoint to the visual question you want answered. A full-page capture checks overall composition; a locator-based region isolates a component. Match settings and exclusions should reflect the component and the kinds of changes your team considers important.

Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 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.
Control Use it for Example or caution
Full page Page-level layout and composition, including content beyond the initial viewport. Use fully: true; confirm the page is in a stable state before capture.
Element region A component such as a navigation bar when the rest of the page is outside the test’s scope. Pass a Playwright locator as region; Applitools’ guide demonstrates region checks.
Match level Controlling how visual differences are evaluated for a checkpoint. The integration guide recommends Strict and also shows Layout in a component-region example. Choose and validate a level for your interface.
Ignored regions Small, known areas with content that varies but is not under test. Exclude only the specific variable area; broad exclusions can conceal meaningful regressions.
Floating regions and displacement handling Cases where a region’s movement or position needs special treatment. Use only where that behavior is intentional and relevant to the test.

Example of a component checkpoint, using a locator as the region:

await eyes.check('Primary navigation', {
  region: page.getByRole('navigation', { name: 'Primary' }),
  matchLevel: 'Layout',
});

For nondeterministic elements such as a timestamp or rotating content, prefer stabilizing the page in the test when practical. If that is not practical, narrowly configure an ignored region. The integration guide also documents failTestsOnDiff values of afterEach, afterAll, or false; choose a policy according to when your project wants visual differences to affect test outcomes, and verify the current behavior in the SDK documentation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Review differences and update baselines deliberately

Eyes sends captured checkpoints to its server for comparison with saved baselines. A difference is a review item, not proof by itself that a change is either a defect or an improvement. Inspect the report in context before changing the baseline.

  1. Open the Eyes result in the enhanced report or dashboard and inspect the changed area and surrounding UI.

  2. Decide whether the difference is an intended product change. Consider the related functional assertions and the expected behavior of the affected page or component.

  3. Accept an intentional change to save a new baseline for future comparisons. Reject an unintended change so it remains a failure to address.

    Free tools Windows power users keep installed

    One-click scans. No signup required.

    Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
    Rank #3
    Sale
    Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
    • 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.

Baseline mutation requires authentication. The custom reporter can add Eyes results to Playwright’s HTML report; the integration instructions say results may be reviewed there without signing in to the dashboard, but accepting or rejecting baseline changes requires authentication. See Applitools’ integration instructions.

Understand the test and hosting flow

Your Playwright suite drives the application. The Eyes SDK captures checkpoints and sends them to the Eyes Server, which compares them against stored baselines and returns results for review. Applitools documents public-cloud, dedicated-cloud, and on-premises server configurations. The actual hosting choice matters to your deployment and data-handling decisions; do not infer residency or security guarantees without checking the configuration your organization selects. Details are in Applitools’ system overview.

Visual AI is Applitools’ stated approach to reducing noise associated with rendering differences such as anti-aliasing and font rendering. That is vendor positioning, not a guarantee that all pixel differences disappear or that every team will see the same results. Validate the workflow against your application and environments; no independent performance statistic is established here.

Keep the suite maintainable

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshoot common setup and review problems

  • The eyes fixture is unavailable: Confirm you imported test from @applitools/eyes-playwright/fixture, not only from Playwright’s standard package, and check that the installed package version supports the documented fixture workflow.

  • Authentication or API-key errors: Verify that APPLITOOLS_API_KEY is set in the environment where Playwright actually runs, including the CI job, and that it is the execution key for the intended account. Avoid exposing it in logs.

  • A checkpoint captures an incomplete or shifting page: Add ordinary Playwright waits and assertions for the content or state that matters before calling eyes.check(). Do not use an arbitrary delay as a substitute for waiting on the relevant state unless the page genuinely requires it.

    Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
    Best Value
    Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display
    • 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.
  • Repeated diffs come from dynamic content: Stabilize the test data where possible. Otherwise, identify the exact variable area and configure a narrow ignored region rather than excluding a large part of the interface.

  • Changes are not failing at the point you expect: Review the project’s failTestsOnDiff policy and confirm the installed SDK’s current semantics for afterEach, afterAll, and false.

  • You can see results but cannot change the baseline: Baseline acceptance or rejection requires authentication; use an authorized account and follow your team’s review policy.

  • Commands or imports do not match examples: Setup interfaces can vary by SDK version. Compare your installed package and language variant with the live Applitools integration guide rather than copying a TypeScript fixture import into another SDK.

    Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Or skip the browser setup

If your immediate need is a screenshot rather than a baseline-driven visual test, ScreenshotNeo is a website screenshot API and MCP server for developers. Its one-call API returns an image or PDF; it is not a replacement for Eyes’ baseline comparison and review workflow.

For example, save a WebP screenshot of a URL with cURL:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp

See the ScreenshotNeo API documentation for options and request details. ScreenshotNeo removes cookie banners, popups, and chat widgets before capture; bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots. The Free plan includes 1,000 screenshots a month without a card, and paid plans start at $5 for 3,000 shots. Sign up for ScreenshotNeo free.

Frequently Asked Questions

Can I use Applitools Eyes with Playwright in languages other than TypeScript?

Yes. Applitools lists Playwright SDK options for TypeScript fixtures and standard usage, Java, C#, and Python. Follow the language-specific integration instructions rather than reusing the TypeScript fixture imports.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Do visual tests replace Playwright functional assertions?

No. Use functional assertions to verify behavior and visual checkpoints to compare rendered UI against a baseline; the two checks cover different concerns.

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.