用途:面向本地 Web 应用的自动化测试与交互工具包,基于原生 Python Playwright 脚本,用于验证前端功能、调试 UI 行为、截图以及捕获控制台日志。
主要能力:提供辅助脚本 scripts/with_server.py 管理服务器生命周期,支持同时启动多个服务器(如后端加前端)。附带示例文件,包括元素发现、静态 HTML 自动化、控制台日志捕获等常见模式。
使用方式:先运行脚本的 --help 查看用法,不要直接阅读源码,脚本体积较大,应作为黑盒直接调用。选择路径时先判断是否为静态 HTML:是则直接读取 HTML 文件识别选择器;否则视为动态应用,若服务器未运行,先执行 python scripts/with_server.py --help,再用该辅助脚本配合简化的 Playwright 脚本。单服务器示例: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 逻辑,服务器由辅助脚本自动管理。
动态应用采用先侦察后操作模式:导航并等待 networkidle,截图或检查 DOM,从渲染状态识别选择器,再用发现的选择器执行操作。
最佳实践:使用 sync_playwright() 编写同步脚本,始终以无头模式启动 chromium,完成后关闭浏览器,使用描述性选择器(text=、role=、CSS 选择器或 ID),添加适当等待(page.wait_for_selector() 或 page.wait_for_timeout())。
常见陷阱:动态应用在等待 networkidle 之前不要检查 DOM,应先调用 page.wait_for_load_state('networkidle') 再检查。
限制:资料未提供安装步骤、依赖版本、收费或平台支持等细节。