10 / 74 · 10 Visual & Accessibility Testing · Commercial Visual Regression Tools← prev⊞ allnext →☰ Read as one page
2.3Applitools Eyes
Applitools built its reputation on a proprietary comparison engine ("Visual AI"), and that engine still powers its diffing. But as of July 2026, the company -- like the rest of the commercial wave (mabl, testRigor, KaneAI by LambdaTest, Testim by Tricentis, Functionize) -- positions itself around "agentic execution": AI agents driving real browsers scriptlessly, with visual validation as one capability inside a broader autonomous testing platform. For this section, what matters is that visual layer: it remains the most sophisticated intelligent comparison available and can test across multiple browsers and devices simultaneously from a single test run.
// tests/visual/applitools-checkout.spec.ts
import { test } from '@playwright/test';
import {
Eyes, Target, BatchInfo, Configuration,
BrowserType, DeviceName, ScreenOrientation
} from '@applitools/eyes-playwright';
test.describe('Checkout Flow Visual Tests', () => {
let eyes: Eyes;
test.beforeEach(async () => {
eyes = new Eyes();
const config = new Configuration();
config.setBatch(new BatchInfo('Checkout Flow'));
// Test across multiple browsers and devices simultaneously
config.addBrowser(1200, 800, BrowserType.CHROME);
config.addBrowser(1200, 800, BrowserType.FIREFOX);
config.addBrowser(1200, 800, BrowserType.SAFARI);
config.addDeviceEmulation(DeviceName.iPhone_15, ScreenOrientation.PORTRAIT);
config.addDeviceEmulation(DeviceName.Pixel_7, ScreenOrientation.PORTRAIT);
eyes.setConfiguration(config);
});
test('cart page visual check', async ({ page }) => {
await eyes.open(page, 'E-Commerce', 'Cart Page');
await page.goto('/cart');
// Full page check with layout matching (ignores text content changes)
await eyes.check('Cart with items', Target.window()
.fully()
.layout() // Match layout, not exact content
.ignoreDisplacements() // Ignore minor position shifts
);
// Specific region check with strict matching
await eyes.check('Price total', Target.region('#order-summary')
.strict() // Exact match for financial data
);
await eyes.close();
});
test.afterEach(async () => {
await eyes.abort();
});
});
Applitools Match Levels
| Match Level | What It Compares | Use Case |
|---|---|---|
| Strict | Pixel-level, AI-filtered | Financial data, legal text, exact content |
| Layout | Element positions, sizes, relationships | Pages with dynamic content (user names, dates) |
| Content | Text content and structure | Pages where styling may vary but content matters |
| Ignore colors | Layout + content, ignoring color changes | Theming changes, dark mode testing |