Playwright

Playwright in Practice

The automation framework that tests this site — what it checks, how it’s structured, and where it’s headed next.

Current Smoke Scan Status

The five checks that run against pinkitechi.com on every scan.

5/5
Passing
5
Pages Scanned
0
Console Errors
1
Pending (Search)
  • ✓
    Page load — every page returns and renders
  • ✓
    Console errors — no JS errors thrown on load
  • ✓
    Key elements — expected structural elements present
  • ✓
    Missing images — no broken image links
  • ✓
    Mobile render — layout holds at mobile widths
  • …
    Search — disabled until the search widget ships

How the Smoke Scan Works

A simplified look at what runs under the hood.

# playwright/smoke_scan.py
def scan_page(page, url):
    page.goto(url)
    # check for console errors
    errors = collect_console_errors(page)
    # confirm key elements exist
    check_key_elements(page, url, config)
    # catch missing images
    check_images(page)
    return build_result(url, errors)

This runs once per page in qa_config.json‘s page list, with the WordPress.com tracking pixel excluded from image checks to avoid false failures.

Where This Is Headed: Multi-Tier Agents

The current smoke scan is one script. The planned structure splits testing into two tiers.

SA-01 → SA-07

Suite agents — broader test suites covering full user flows across the site, run less frequently.

PA-01 → PA-11

Probe agents — narrow, fast checks targeting specific elements or pages, run on every change.

findings-reporter.ts

Takes raw Playwright output and generates a findings summary, defects log, and workbook-ready results tab.

Common Gotchas

Things that have actually broken a scan here before.

New WordPress.com sites default to private, which blocks Playwright the same way it blocks search engines. Fix under Settings → Reading.

The built-in stats pixel can register as a “broken image” if it’s not explicitly excluded from image checks.

Switching permalink settings changes every page URL — any hardcoded paths in test config need updating to match.

See how this fits the full QA process →