用途:通过编写原生 Python Playwright 脚本,与本地 Web 应用交互并进行测试,涵盖前端功能验证、UI 行为调试、截图与 DOM 检查等场景。
主要能力与用法:工具包提供辅助脚本 scripts/with_server.py,用于管理服务器生命周期,支持同时启动多个服务器。应先运行 --help 查看用法,而不是直接阅读源码;这些脚本体积较大,适合作为黑盒脚本直接调用,避免占用上下文窗口。
选择测试思路的判断逻辑:若是静态 HTML,可直接读取 HTML 文件确定选择器;若失败或不完整,则按动态应用处理。若是动态 Web 应用且服务器未运行,先执行 python scripts/with_server.py --help,再用该辅助脚本配合简化后的 Playwright 脚本。若服务器已在运行,则采用“先侦察后操作”:导航并等待 networkidle、截图或检查 DOM、从渲染结果中确定选择器、再用发现的选择器执行操作。
启动服务器示例(单服务器):python scripts/with_server.py --server "npm run dev" --port 5173 -- python automation.py;多服务器示例:python scripts/with_server.py --server "cd backend && python server.py" --port 3000 --server "cd frontend && npm run dev" --port 5173 -- python test.py。自动化脚本只需包含 Playwright 逻辑,服务器由辅助脚本自动管理,示例中使用 sync_playwright() 启动 headless chromium,page.goto 后需调用 page.wait_for_load_state('networkidle')。
最佳实践包括:使用 sync_playwright() 编写同步脚本、完成后关闭浏览器、使用 text=、role=、CSS 选择器或 ID 等描述性选择器、添加 page.wait_for_selector() 或 page.wait_for_timeout() 等适当等待。常见误区是动态应用在等待 networkidle 之前就去检查 DOM;应先等待再检查。参考文件 examples/ 下包含元素发现、静态 HTML 自动化、控制台日志捕获等常见模式示例。
限制:资料未提供关于收费、价格、平台兼容范围、性能效果及其他未提及能力的说明。