Deep Dive Topics
Page 4 of 6
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...
Caching Playwright Browsers in CI
Caching Playwright Browsers in CI Every cold CI job that runs npx playwright install pulls a fresh copy of Chromium, Firefox, and WebKit over the network — close to a gigabyte on ...
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....
Worker-Scoped Fixtures for Expensive Setup
Worker-Scoped Fixtures for Expensive Setup Some setup is cheap enough to repeat: building a page object, creating a temp directory, generating a random email. Other setup is not. ...
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...