Live Test

Skill v1.0 3 files

Live browser testing for web applications using Playwright CLI. Visual review, functional testing, console/network debugging, auto-fix UI issues, and responsive testing at desktop, tablet, and mobile breakpoints.

playwrightbrowservisual-testingresponsivedebugginguifunctional-testing

Live Test is a Claude Code skill. Live browser testing for web applications using Playwright CLI. It works well with test-improve, mobile-test, webapp-testing.

Categoriestesting

Documentation

--- name: live-test description: > Live browser testing for web applications using Playwright CLI. Covers visual review, functional testing, console/network debugging, auto-fix UI issues, and responsive testing at 3 breakpoints. triggers: - "test this page" - "check the UI" - "test responsive" - "run a live test" - "test localhost" - "browser test" - "visual review" - "test my app" - "functional test" - "live test" - "test the page" - "test the site" - "check responsive" - "visual test" tags: - testing - browser - playwright - responsive - visual - ui - live matching: fuzzy --- # Live Test - Web Application Testing ## How It Works Playwright CLI runs via Bash commands. Snapshots save to .playwright-cli/ as compact YAML files. Screenshots save as PNG. The agent reads only what it needs — no bloated accessibility trees in context. ## IMPORTANT: Command Sequence You MUST call `playwright-cli open` before any other command. All commands operate on the browser opened by `open`. If you get "browser is not open", run `open` first. ## Cleanup Rule (CRITICAL) All screenshots and snapshots are temporary artifacts for analysis only. After the test run completes (end of Phase 8), delete ALL generated files: ```bash rm -f /tmp/playwright-test-*.png rm -rf .playwright-cli/ ``` Never leave test artifacts on disk. The final report captures all findings in text — the image files are only needed during analysis. ## Quick Reference ``` # Browser lifecycle playwright-cli open [url] launch browser (optionally navigate to url) playwright-cli open [url] --headed launch in headed mode (visible window) playwright-cli close close browser # Navigation playwright-cli goto <url> navigate to a url playwright-cli go-back go back playwright-cli go-forward go forward playwright-cli reload reload page # Interaction playwright-cli snapshot get element refs as YAML playwright-cli screenshot [ref] capture current state (or specific element) playwright-cli click <ref> click element by ref playwright-cli fill <ref> <text> fill input field playwright-cli type <text> type text into focused element playwright-cli select <ref> <val> select dropdown option playwright-cli hover <ref> hover over element playwright-cli press <key> press keyboard key playwright-cli check <ref> check checkbox/radio playwright-cli uncheck <ref> uncheck checkbox/radio # Viewport playwright-cli resize <w> <h> resize browser window # DevTools playwright-cli console [min-level] read console messages (levels: log, warning, error) playwright-cli network list network requests # Tabs playwright-cli tab-list list all tabs playwright-cli tab-new [url] open new tab playwright-cli tab-select <index> switch to tab playwright-cli tab-close [index] close tab # Storage / Auth playwright-cli state-save [filename] save cookies + localStorage + sessionStorage playwright-cli state-load <filename> load saved state playwright-cli cookie-list list cookies playwright-cli localstorage-list list localStorage playwright-cli sessionstorage-list list sessionStorage # Save playwright-cli pdf save page as PDF ``` ## Workflow (8 Phases) ### Phase 1: Target Detection - If URL provided: use it directly - If no URL: run `git diff --name-only HEAD~3` - Filter for page files: `src/app/**/page.tsx`, `app/**/page.tsx` - Map file paths to URLs: - Strip route groups like `(dashboard)`, `(auth)` - Default base: http://localhost:3000 - If multiple pages changed, test each sequentially ### Phase 2: Browser Setup & Authentication **Step 1 — Derive project name and session path:** ```bash PROJECT=$(basename $(git rev-parse --show-toplevel 2>/dev/null || pwd)) SESSION_FILE="$HOME/.claude/playwright-sessions/${PROJECT}.json" ``` **Step 2 — Open browser with or without saved session:** If session file exists: ```bash playwright-cli open --headed playwright-cli state-load "$SESSION_FILE" playwright-cli goto <url> ``` If no session file: ```bash playwright-cli open <url> --headed ``` **Step 3 — Check if auth is needed:** ```bash playwright-cli snapshot ``` - Look for: login forms, "Sign in" buttons, `/login` or `/auth` in URL - If page loads normally (dashboard, app content) → auth is valid, continue **Step 4 — If login is needed (no session or expired):** - Tell the user: "This page requires login. Please log in manually in the browser window. Tell me when you're done." - Wait for user confirmation - After user confirms, save the session: ```bash mkdir -p "$HOME/.claude/playwright-sessions" playwright-cli state-save "$SESSION_FILE" ``` - Confirm: "Session saved for ${PROJECT}. Future tests will auto-login." **Step 5 — Take initial snapshot** to understand page structure: ```bash playwright-cli snapshot ``` **Session file location:** `~/.claude/playwright-sessions/<project-name>.json` - One file per project, reused across test runs - Contains cookies + localStorage + sessionStorage - Never committed to git (lives in ~/.claude/) - To force re-login: delete the file or pass `--reauth` argument ### Phase 3: Visual Review ```bash playwright-cli screenshot --filename=/tmp/playwright-test-visual-review.png ``` - Read screenshot and analyze for: - Layout problems (misaligned elements, broken grids) - Spacing inconsistencies - Color/contrast issues - Typography problems - Missing states (loading, error, empty) ### Phase 4: Functional Testing ```bash playwright-cli snapshot ``` - Read YAML snapshot to identify interactive elements - Test buttons, links, forms using refs: ```bash playwright-cli click <ref> playwright-cli fill <ref> "test input" ``` - Check console errors: ```bash playwright-cli console error ``` - Check network failures: ```bash playwright-cli network ``` ### Phase 5: Debug Issues - Console errors → diagnose and fix: - React hydration → fix server/client mismatch - API failures → verify endpoints - Missing env vars → check .env.local - Network failures: - 404 → check route exists - 500 → fix API code - CORS → check Next.js config ### Phase 6: UI Improvements (Auto-Apply) - Auto-fix issues found in Phase 3: - Spacing adjustments - Color consistency - Button styling - Typography fixes - After each fix, reload and re-screenshot to verify: ```bash playwright-cli reload playwright-cli screenshot --filename=/tmp/playwright-test-after-fix.png ``` ### Phase 7: Responsive Testing Test at three breakpoints: ```bash # Mobile playwright-cli resize 393 852 playwright-cli screenshot --filename=/tmp/playwright-test-mobile.png # Tablet playwright-cli resize 768 1024 playwright-cli screenshot --filename=/tmp/playwright-test-tablet.png # Desktop playwright-cli resize 1440 900 playwright-cli screenshot --filename=/tmp/playwright-test-desktop.png ``` - Check: touch targets, text readability, no horizontal scroll, layout adapts, no awkward breakpoints ### Phase 8: Final Report & Cleanup Structured summary of all findings: - Pages tested - Issues found & fixed - UI improvements applied - Console/network errors - Responsive status (mobile/tablet/desktop pass/fail) **Cleanup (mandatory):** Delete all temporary test artifacts: ```bash rm -f /tmp/playwright-test-*.png rm -rf .playwright-cli/ ``` Leave browser open for manual review. ## Session Management Session files are stored at `~/.claude/playwright-sessions/<project-name>.json`. They capture cookies, localStorage, and sessionStorage — covering both cookie-based auth (traditional sessions) and token-based auth (JWTs in localStorage). ### Commands ```bash # Save current browser state (after manual login) playwright-cli state-save ~/.claude/playwright-sessions/my-project.json # Load saved state into browser (browser must be open first) playwright-cli state-load ~/.claude/playwright-sessions/my-project.json # Inspect what's stored playwright-cli cookie-list playwright-cli localstorage-list playwright-cli sessionstorage-list ``` ### Force Re-login If auth is stale or user wants to switch accounts: ```bash rm ~/.claude/playwright-sessions/<project-name>.json ``` Then run `/test` again — it will prompt for manual login. ### Multiple Environments For projects with staging vs production: ```bash playwright-cli state-save ~/.claude/playwright-sessions/my-project-staging.json playwright-cli state-save ~/.claude/playwright-sessions/my-project-prod.json ``` ## Fallback If Playwright CLI is not installed, do NOT fall back to Chrome MCP tools. Instead, tell the user: "Playwright CLI is not installed. Install it with: `npm install -g @playwright/cli@latest`" and stop.
JF
Built by Jay Feldman
Founder, Lead Gen Jay · Inc. 5000 · 80K+ YouTube subs

Install

curl -sL 'https://leadgenjay.com/api/skills/install.sh?items=live-test' | bash
Installs in ~3 seconds
Verified by Jay
Files included
NOTES.md
SKILL.md
manifest.yaml
View on GitHub
Want premium skills?

The full exclusive stack

Get every Claude Code skill, command, and agent Jay uses to run an Inc. 5000 company — plus live coaching, the private community, and lifetime access.

  • Claude Code Zero to ProFastest way to learn Claude
    $2,997
  • Claude Remote AgentBuild your own 24/7 Bob
    $3,497
  • 100+ Exclusive Skills & AutomationsClaude Code & n8n
    $1,997
  • Unlimited Live CoachingOn-demand + Tuesdays with Jay
    $1,497
  • Top 1% Skool Community3,000+ founders
    $997
Total real-world value$13,479
You pay today$1,497
Encrypted 14-day refund Cancel anytime