Browser Js

🌐 CDP 浏览器自动化,token 效率提升 10 倍

基于Chrome DevTools Protocol的轻量级浏览器自动化工具,相比内置浏览器工具节省3-10倍token,支持Shadow DOM和现代SPA。

收藏
6.9k
安装
1.9k
版本
1.4.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

browser-js 综合评估

browser-js 是一个专为 AI Agent 设计的轻量级浏览器控制工具,通过 Chrome DevTools Protocol (CDP) 与 Chromium 浏览器通信,提供极简、索引化的页面交互能力。

核心用法

工具通过命令行接口提供完整浏览器自动化能力:

  • 页面导航open <url>backforwardrefresh
  • 元素发现elements [selector] 扫描可交互元素并生成编号列表
  • 交互操作click <index>type <index> <text>、支持真实的鼠标事件触发
  • 内容提取text(页面文本,8KB 上限)、html <selector>(元素 HTML,10KB 上限)、eval <js>(执行任意 JavaScript)
  • 文件上传upload <path> [selector] 通过 CDP 直接注入文件,绕过系统对话框
  • 截图与滚动screenshot [path]scroll <direction> [px]

关键特性包括自动索引系统——elements 命令返回紧凑编号列表如 [3] (button) Submit,后续 click 3 即可精准操作;Shadow DOM 原生支持——递归穿透 web components,兼容 Reddit、GitHub 等现代 SPA;真实鼠标事件——使用 CDP dispatchMouseEvent 而非 JS .click(),可靠触发 React/Vue/Angular 合成事件。

显著优点

1. 极致 Token 效率:单次交互约 50-200 tokens,相比传统浏览器工具的 accessibility tree 快照(2,000-5,000 tokens)节省 3-10 倍,10 步流程可节省数万 tokens
2. 现代 Web 兼容:原生 Shadow DOM 穿透、SPA 框架事件支持,解决传统工具在现代站点的失效问题

3. 会话连续性:复用已登录浏览器实例,自动携带 cookies 和登录状态

4. 文件上传便利:绕过 OS 文件选择器,直接注入文件到隐藏 input 元素

5. 零配置开箱:OpenClaw 环境预配置,或手动启动 Chrome 即可使用

潜在局限

1. 依赖本地 Chrome:必须维持 Chromium 进程运行,无法在无浏览器环境使用
2. 单一实例限制:默认连接本地 18800 端口,多实例并发需额外配置

3. 内容截断text 8KB、html 10KB 上限,大型页面需配合 eval 自定义提取

4. 无视觉理解:纯文本/索引输出,页面结构理解依赖 Agent 推理,复杂布局可能需截图辅助

5. 安全边界eval 命令可执行任意 JavaScript,需信任调用方;upload 命令可访问本地文件系统

适合人群

  • 需要高频浏览器交互的 AI Agent 工作流(如批量数据抓取、表单自动化)
  • 处理现代 Web 应用(React/Vue/Angular、Shadow DOM)的自动化场景
  • Token 预算敏感的长流程任务
  • 已有 Chrome/CDP 基础设施的开发者

常规风险

| 风险类别 | 说明 | 缓解措施 |
|---------|------|---------|
| 命令注入 | `eval` 执行任意 JS,`open` 可能访问恶意 URL | 仅用于可信站点,输入 URL 需校验 |
| 文件系统访问 | `upload` 读取本地文件,`screenshot` 写入文件 | 在沙箱环境运行,限制文件路径 |
| 浏览器安全 | 复用用户会话可能暴露敏感信息 | 使用隔离的 user-data-dir,避免登录敏感账户 |
| 网络暴露 | CDP 端口若对外开放可被远程利用 | 绑定 127.0.0.1,勿暴露公网 |
| 依赖风险 | npm 依赖供应链攻击 | 锁定版本,审计 scripts/package.json |

来源可信度

纯社区开源工具,无商业背书。代码透明可审计,但安全报告为系统占位生成,未执行实际扫描。建议生产使用前进行依赖审计和沙箱隔离。

Browser Js 内容

scripts文件夹
手动下载zip · 10.8 kB
browser.jstext/javascript
请选择文件