webapp-testing
Web 应用测试
使用 Python + Playwright 编写本地 Web 应用测试脚本。
辅助脚本:scripts/with_server.py 管理服务生命周期(支持多服务)。
先执行 --help 查看用法,勿优先读源码;脚本可能很大,作为黑盒调用即可。
流程选择
任务 → 是否纯静态 HTML?
├─ 是 → 直接读 HTML 找选择器 → 写 Playwright 脚本
└─ 否(动态应用)→ 服务是否已启动?
├─ 否 → 运行 python scripts/with_server.py --help,再用该辅助脚本 + 简化 Playwright
└─ 是 → 侦察再操作:
1. 打开页面并 wait_for_load_state('networkidle')
2. 截图或检查 DOM
3. 从渲染结果确定选择器
4. 用选择器执行操作
使用 with_server.py
单服务:
python scripts/with_server.py --server "npm run dev" --port 5173 -- python your_automation.py
多服务(如前后端):
python scripts/with_server.py \
--server "cd backend && python server.py" --port 3000 \
--server "cd frontend && npm run dev" --port 5173 \
-- python your_automation.py
自动化脚本只写 Playwright 逻辑,服务由 with_server 管理:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
page.goto('http://localhost:5173')
page.wait_for_load_state('networkidle') # 关键:等 JS 执行完
# ... 你的自动化逻辑
browser.close()
侦察再操作
- 查看 DOM:
page.screenshot()、page.content()、page.locator(...).all() - 根据结果确定选择器
- 用选择器执行操作
常见坑
❌ 动态应用在未 networkidle 前就检查 DOM
✅ 先 page.wait_for_load_state('networkidle') 再检查
实践建议
- 将
scripts/当黑盒使用,--help后直接调用 - 使用
sync_playwright(),用毕关闭 browser - 选择器优先:
text=、role=、CSS、ID - 适当
wait_for_selector或wait_for_timeout
参考:原技能 examples/ 下的 element_discovery.py、static_html_automation.py、console_logging.py 等。
More from kunhai-88/skills
marketing-ideas
需要营销创意、灵感或策略时使用。触发词:marketing ideas、growth ideas、how to market、marketing strategies、marketing tactics、ways to promote、ideas to grow。提供 140 个已验证的营销方法,按类别组织。
31marketing-psychology
将心理学原理、心智模型或行为科学应用于营销时使用。触发词:心理学、心智模型、认知偏差、说服、行为科学、人们为何购买、决策、消费者行为。提供 70+ 面向营销的心智模型。
16agent-browser
浏览器自动化工具,用于网页导航、交互、截图、录制等。当需要自动化浏览器操作、测试网页、抓取网页内容、填写表单、截图、录制视频,或提到「浏览器自动化」「网页测试」「agent-browser」「浏览器操作」时使用。
12supabase-postgres-best-practices
Supabase 出品的 Postgres 性能优化与最佳实践。在编写、评审或优化 Postgres 查询、表结构设计或数据库配置时使用。
10audit-website
使用 squirrelscan CLI(squirrel)对网站进行审计,覆盖 SEO、技术、内容、性能、安全等 140+ 规则。当需要分析网站健康、排查技术 SEO、检查死链、校验 meta 与结构化数据、生成站点审计报告、对比改版前后,或提到「网站审计」「audit website」「squirrel」「站点健康检查」时使用。
8better-auth-best-practices
集成 Better Auth(TypeScript 鉴权框架)时使用。支持邮箱密码、OAuth、魔法链接、Passkey 等,通过插件扩展。编写或配置 Better Auth 时触发。
8