Deep Dive Topics
Page 3 of 6
Debugging with Playwright Inspector and UI Mode
Debugging with Playwright Inspector and UI Mode The Trace Viewer explains a failure after it happened; the Inspector and UI mode let you debug a test while it runs. When you are a...
Reading Network and Console Tabs in Traces
Reading Network and Console Tabs in Traces A Playwright failure almost never reports the thing that actually broke. The runner prints Timed out 5000ms waiting for expect(locator)....
Managing Screenshot Baselines Across Platforms
Managing Screenshot Baselines Across Platforms A visual test that passes on your laptop and fails the moment it reaches CI is almost never a real regression. toHaveScreenshot() co...
Masking Dynamic Regions in Snapshots
Masking Dynamic Regions in Snapshots A screenshot assertion is a byte-level equality check dressed up as a UI test, and almost every real application contains a handful of pixels ...
Tuning Screenshot Comparison Thresholds
Tuning Screenshot Comparison Thresholds A visual test that fails on four pixels is as useless as one that passes over a collapsed layout, and most teams arrive at the second by ov...
Handling OAuth and SSO Redirects in Tests
Handling OAuth and SSO Redirects in Tests A test that signs in through Okta, Auth0, Microsoft Entra ID, or Google Workspace does not perform one navigation — it performs a chain o...
Reusing Login State with storageState
Reusing Login State with storageState A login form is the slowest, least interesting part of almost every end-to-end suite, and running it before each test multiplies a four-secon...
Setting Up an Auth Setup Project
Setting Up an Auth Setup Project A suite that logs in inside beforeEach pays the login cost once per test, hammers the identity provider from every worker at once, and turns a sin...
Testing Multiple User Roles in Parallel
Testing Multiple User Roles in Parallel Most authenticated applications behave differently for an administrator, an editor, and a read-only viewer, so a serious suite has to exerc...
Emulating Devices, Locales and Timezones
Emulating Devices, Locales and Timezones A checkout page that renders 1.234,50 € in Berlin and $1,234.50 in Chicago is running the same JavaScript against two different Intl confi...