HomeBlogCase Study: How We Optimized Shadow DOM Selectors to Speed Up Builds by 80%
Back to Blog
By Playwright Core
|
5 min read
|April 10, 2026

Case Study: How We Optimized Shadow DOM Selectors to Speed Up Builds by 80%

#playwright shadow dom#learn playwright#qa automation#sdet guide#test shadow dom code

Introduction to Shadow DOM Selectors

A slow, flaky E2E suite blocks releases and frustrates developers. In this case study, we document how a client optimized their automation framework's Shadow DOM Selectors setup to speed up build runs and secure stable deployment gates.

Core Concepts and Browser Mechanics

The client's main issue was flakiness on dynamic dropdowns and payment gates. By switching from hardcoded wait sleeps to Playwright's auto-waiting locators and intercepting API calls, we eliminated the timing discrepancies.

By using Shadow DOM Selectors correctly, teams ensure their tests model real human interactions while executing at maximum speed and reliability.

Syntax Code Block

Here is the before/after optimization refactoring we implemented for the Shadow DOM Selectors script:

// Playwright pierces Shadow DOM boundaries automatically!\nawait page.locator('custom-web-component >>> button.shadow-btn').click();

Guidelines and Checklist

Review this checklist to make sure your E2E automation framework follows standard industry conventions:

  • Best Practice: Eliminate thread sleeps: Replace all setTimeout/waitForTimeout commands with web assertions.
  • Best Practice: Intercept network payloads: Speed up runs by blocking heavy images or style files during testing.
  • Best Practice: Utilize lightweight worker threads: Speed up local checks by running tests fully parallel.

Summary

This refactoring of Shadow DOM Selectors resulted in a zero-flake testing pipeline, cutting total runtime from 45 minutes down to just 8 minutes.

Want to write and run tests inside your browser without any setup? Check out our free Online Playwright Playground to test code instantly!

Related Guides

9 min readMay 10, 2026

10 Playwright Best Practices for Reliable Tests

Tired of debugging failing builds? Follow these 10 Playwright best practices to write stable, maintainable, and lightning-fast test suites.

Read Guide
6 min readMay 11, 2026

Complete Beginner Guide to Chaining Locators in Playwright

Learn all about Chaining Locators in Playwright. This beginner guide provides copy-pasteable code blocks, tips, and guidelines to avoid timing issues.

Read Guide
8 min readJune 20, 2026

Advanced Deep Dive: Master Locator Filtering inside Playwright

Learn all about Locator Filtering in Playwright. This advanced deep dive provides copy-pasteable code blocks, tips, and guidelines to avoid timing issues.

Read Guide