DAY 22
GitHub Actions Pipeline
Automate every push. Never let a breaking change reach main.
Core Practice
- Create
.github/workflows/playwright.yml - Configure triggers on
pushandpull_request - Install browsers with
playwright install --with-deps - Upload HTML reports and traces as artifacts
DAY 23
Docker & Containers
Run tests in identical environments everywhere. No more "works on my
machine".
- Write a
Dockerfilebased on playwright-official - Setup
docker-compose.ymlfor local runs - Run headless tests inside a Linux container
DAY 24
Parallel & Sharding
Cut execution time from minutes to seconds with smart distribution.
- Set
fullyParallel: truein config - Experiment with
--shard=1/4commands - Merge shard reports using
playwright merge-reports - Monitor worker efficiency in HTML report
DAY 25
Enterprise Pipelines
Deliver into Jenkins and Azure DevOps. Industry standard workflows.
- Create
Jenkinsfilewith JUnit reporting - Setup
azure-pipelines.ymlworkflow - Configure parameterised builds for specific tags
DAY 26
Visual & Accessibility
Catch what functional tests miss. Pixels and ARIA matter.
- Implement
toHaveScreenshot()for regression - Mask dynamic content during visual comparison
- Integrate
@axe-core/playwrightfor A11y audits - Fail builds on critical WCAG violations
DAY 27
page.evaluate()
Reach inside the browser. Execute JS in the page context.
- Read computed styles and internal JS state
- Manipulate
localStoragedirectly - Expose Node.js functions to the browser
DAY 28
Semantic & AI Locators
Transition to the intelligent layer of Playwright.
- Use
page.accessibility.snapshot()to see what AI sees - Refactor to 100% semantic locators (Role, Label, Text)
- Experiment with
getByAI()experimental features