Deep Dive Topics
Page 2 of 3
Analyzing Test Failures with the Playwright Trace Viewer
Analyzing Test Failures with the Playwright Trace Viewer A CI job goes red with expect(locator).toBeVisible() failed . The stack trace tells you which assertion broke but not why ...
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...
How to Configure Multiple Browser Contexts in Playwright
How to Configure Multiple Browser Contexts in Playwright A single browser process can host many fully isolated sessions at once, and the unit that delivers that isolation is the b...
Dockerizing Playwright for Headless CI
Dockerizing Playwright for Headless CI The single largest source of "works locally, fails in CI" with Playwright is the host environment: a missing font library, a Chromium that c...
Running Playwright Tests in GitHub Actions with Sharding
Running Playwright Tests in GitHub Actions with Sharding A suite that takes twelve minutes on one runner takes about four when split across three runners that work at the same tim...
Running Chromium vs Firefox vs WebKit in Playwright
Running Chromium vs Firefox vs WebKit in Playwright Playwright ships its own builds of three rendering engines — Chromium (Blink), Firefox (Gecko), and WebKit (the engine behind S...
Structuring Large Projects with the Page Object Model
Structuring Large Projects with the Page Object Model A handful of test files can get away with inlining selectors and navigation steps, but once a suite grows past a few dozen sp...
Setting Up Global Fixtures for Parallel Tests
Setting Up Global Fixtures for Parallel Tests Running tests in parallel turns a slow suite into a fast one, but it also exposes every assumption that a test is alone in the world....
CSS Selector vs getByRole: When to Use Each
CSS Selector vs getByRole: When to Use Each Most flaky locator failures trace back to choosing the wrong selector kind for the element, not to a typo in the selector itself. page....
Optimizing XPath for SPA Navigation
Optimizing XPath for SPA Navigation Single-page applications swap entire views without a full page load, and an XPath expression written for one route routinely resolves against t...