test-ui
[DevOps & Infra] Browser automation, debugging, and performance analysis using Puppeteer CLI scripts. Use for automating browsers, taking screenshots, analyzing performance, monitoring network traffic, web scraping, form automation, and JavaScript debugging.
安装与使用
请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。
查看来源 ↗使用指南技能说明
Chrome DevTools Agent Skill
Browser automation via Puppeteer scripts with persistent sessions. All scripts output JSON.
Summary
Goal: Automate browser interactions, take screenshots, and analyze performance using Puppeteer CLI scripts.
| Step | Action | Key Notes |
|---|---|---|
| 1 | Install | cd .claude/skills/test-ui/scripts && npm install |
| 2 | Navigate | node navigate.js --url <url> (session persists via .browser-session.json) |
| 3 | Interact | click.js, fill.js, evaluate.js, select-ref.js |
| 4 | Inspect | screenshot.js, snapshot.js, aria-snapshot.js, console.js |
| 5 | Analyze | performance.js for Core Web Vitals, network.js for HTTP tracking |
| 6 | Close | node navigate.js --url about:blank --close true |
Key Principles:
- Never use
file://for local HTML -- serve vianpx serveinstead - Session persists between scripts; delete
.browser-session.jsonto reset - Source-available sites: read source first for selectors; unknown layouts: use
aria-snapshot.js
⚠️ MUST READ References
IMPORTANT: You MUST read these reference files for complete protocol. Do NOT skip.
-
⚠️ MUST READ
references/devtools-patterns.md— ARIA, screenshots, console, custom scripts -
⚠️ MUST READ
references/cdp-domains.md— CDP domain reference -
⚠️ MUST READ
references/puppeteer-reference.md— Puppeteer API reference -
⚠️ MUST READ
references/performance-guide.md— Performance analysis guide -
⚠️ MUST READ
scripts/README.md— Script options reference
Choosing Your Approach
| Scenario | Approach |
|---|---|
| Source-available sites | Read source code first, write selectors directly |
| Unknown layouts | Use aria-snapshot.js for semantic discovery |
| Visual inspection | Take screenshots to verify rendering |
| Debug issues | Collect console logs, analyze with session storage |
Quick Start
cd .claude/skills/test-ui/scripts
npm install
node navigate.js --url https://example.com
# Headless on Linux/WSL/CI; headed on macOS/Windows
# Linux/WSL: Run ./install-deps.sh first for Chrome system libraries
Session Persistence
Browser state persists via .browser-session.json. Scripts disconnect but keep browser running.
node navigate.js --url https://example.com/login
node fill.js --selector "#email" --value "user@example.com"
node click.js --selector "button[type=submit]"
node navigate.js --url about:blank --close true # Close when done
Available Scripts
All in .claude/skills/test-ui/scripts/:
| Script | Purpose |
|---|---|
navigate.js |
Navigate to URLs |
screenshot.js |
Capture screenshots (auto-compress >5MB) |
click.js |
Click elements |
fill.js |
Fill form fields |
evaluate.js |
Execute JS in page context |
snapshot.js |
Extract interactive elements (JSON) |
aria-snapshot.js |
Get ARIA accessibility tree (YAML with refs) |
select-ref.js |
Interact with elements by ARIA ref |
console.js |
Monitor console messages/errors |
network.js |
Track HTTP requests/responses |
performance.js |
Measure Core Web Vitals |
Script Options (All scripts)
-
--headless false- Show browser window -
--close true- Close browser completely -
--timeout 30000- Set timeout (ms) -
--wait-until networkidle2- Wait strategy
Common Patterns
# Web scraping
node evaluate.js --url https://example.com --script "
Array.from(document.querySelectorAll('.item')).map(el => ({
title: el.querySelector('h2')?.textContent, link: el.querySelector('a')?.href
}))" | jq '.result'
# Form automation
node fill.js --selector "#search" --value "query"
node click.js --selector "button[type=submit]"
# Performance
node performance.js --url https://example.com | jq '.vitals'
Local HTML Files
Never use file://. Serve via local server: npx serve ./dist -p 3000 &
Troubleshooting
| Error | Solution |
|---|---|
Cannot find package 'puppeteer' |
Run npm install in scripts directory |
libnss3.so missing (Linux) |
Run ./install-deps.sh |
| Element not found | Use snapshot.js to find correct selector |
| Script hangs | Use --timeout 60000 or --wait-until load |
| Screenshot >5MB | Auto-compressed; use --max-size 3 for lower |
| Session stale | Delete .browser-session.json and retry |
IMPORTANT Task Planning Notes
- Always plan and break many small todo tasks
- Always add a final review todo task to review the works done at the end to find any fix or enhancement needed
使用示例
查看来源仓库中的使用示例与配置说明。
查看来源 ↗来源历史
- 收录时间
- 2026-03-11
- 索引更新时间
- 2026-03-11
- Branch
- main
收录与同步日期属于本站记录。源码修改历史请查看来源仓库。
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!