用途:该技能用于测试本地 Web 应用,重点是与 SahayakAI Web 应用交互,支持验证测验、微课等教育流程以及调试。做法是编写原生 Python Playwright 脚本执行自动化。
主要能力:提供辅助脚本 with_server.py,用于管理服务器生命周期,支持同时管理多个服务器;配合 Playwright 脚本完成页面导航、等待、截图、DOM 检查与交互。
使用方式:先写 Python Playwright 脚本。辅助脚本路径为 /Users/sargupta/SahayakAIV2/sahayakai/sahayakai-main/.agent/skills/webapp-testing/scripts/with_server.py,运行任何脚本前必须先加 --help 查看用法,不要事先阅读源码,除非确认必须自定义。单服务器示例:python /Users/sargupta/SahayakAIV2/sahayakai/sahayakai-main/.agent/skills/webapp-testing/scripts/with_server.py --server "npm run dev" --port 5173 -- python your_automation.py。多服务器示例:python .../with_server.py --server "cd backend && python server.py" --port 3000 --server "cd frontend && npm run dev" --port 5173 -- python your_automation.py。自动化脚本只需包含 Playwright 逻辑,服务器由辅助脚本自动管理,并始终在 headless 模式启动 chromium,例如 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')。
方法与决策树:若为静态 HTML,直接读取文件识别选择器;失败或不完整则按动态 Web 应用处理。动态应用若服务器未运行,先运行 with_server.py --help,再用辅助脚本并编写简化 Playwright 脚本;若服务器已运行,采用先侦察后操作:导航并等待 networkidle,截图或检查 DOM,从渲染状态识别选择器,再用发现的选择器执行操作。
最佳实践与限制:将 bundled 脚本当作黑盒直接调用,避免读入其源码污染上下文;使用同步模式;完成后关闭浏览器;使用描述性选择器;适当等待。常见陷阱是不要在动态应用等待 networkidle 之前检查 DOM。参考示例位于 .../examples/,包括 element_discovery.py、static_html_automation.py、console_logging.py。其他收费、价格、平台等信息暂未提供。