Dev Browser 是一个浏览器自动化技能,核心特点是跨脚本执行保持页面状态,适合导航网站、填写表单、截图、提取网页数据以及测试 Web 应用。它建议编写小而聚焦的脚本逐步推进任务,验证流程后可写成脚本一次性完成重复工作。
使用方式有两种模式,需向用户确认。独立模式(默认)会启动新的 Chromium 浏览器,命令为 ./skills/dev-browser/server.sh &,用户要求时可加 --headless,需等待 Ready 消息后再运行脚本。扩展模式连接用户已有的 Chrome,适用于用户已登录、需要操作需认证的站点,或用户明确要求使用扩展的场景;启动中继服务器命令为 cd skills/dev-browser && npm i && npm run start-extension &,需等待 Extension connected 后再控制浏览器,扩展下载地址为 https://github.com/SawyerHood/dev-browser/releases。
脚本需在 skills/dev-browser/ 目录下运行,因为 @/ 导入别名依赖该目录配置。可通过 heredoc 内联执行,使用 connect() 连接、client.page("name") 创建或获取命名页面、waitForPageLoad(page) 等待加载,结束时用 await client.disconnect() 断开,页面会保留在服务器上。页面对象是标准 Playwright Page。
主要能力包括:用 getAISnapshot() 获取 YAML 格式的无障碍树以发现元素,用 selectSnapshotRef() 按 ref 交互;用 page.screenshot() 截图;用 page.waitForSelector()、page.waitForURL() 等待;用 page.evaluate() 执行浏览器内代码,注意其中只能写纯 JavaScript,不能使用 TypeScript 语法。抓取大数据集时建议拦截并重放网络请求,而非滚动 DOM,详见 references/scraping.md。
限制与注意事项:页面状态在失败后仍会保留,可截图和输出 URL、标题、正文片段进行调试;脚本仅在需要复用、较复杂或用户明确要求时才写入 tmp/ 文件;页面命名应具描述性。资料未提供收费、价格、平台支持范围等更多信息。