返回顶部
b

browser-js轻量浏览器控制

Lightweight CDP browser control for AI agents. Token-efficient alternative to the built-in browser tool — 3-10x fewer tokens per interaction. Use when browsing websites, clicking elements, filling forms, uploading files, or extracting page content. Requires a Chrome/Chromium browser running with --remote-debugging-port (OpenClaw browser works out of the box). Signed-in sessions carry over automatically.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.5.0
安全检测
已通过
1,088
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

browser-js

browser-js

轻量级命令行工具,通过CDP(Chrome DevTools Protocol)与Chrome通信。返回简洁、带索引的输出,智能体可立即使用——无需解析无障碍树,无需查找引用。

设置

bash

安装依赖(一次性操作,在技能脚本目录下执行)


cd scripts && npm install

确保浏览器已启用CDP运行。

使用OpenClaw:

browser start profile=openclaw

或手动启动:

google-chrome --remote-debugging-port=18800 --user-data-dir=~/.browser-data

该工具默认连接到 http://127.0.0.1:18800。可通过 CDP_URL 环境变量覆盖。

别名设置(可选)

bash
mkdir -p ~/.local/bin
cat > ~/.local/bin/bjs << WRAPPER
#!/bin/bash
exec node /path/to/scripts/browser.js $@
WRAPPER
chmod +x ~/.local/bin/bjs

命令

bjs tabs 列出打开的标签页
bjs open 导航到URL
bjs tab 切换到指定标签页
bjs newtab [url] 打开新标签页
bjs close [index] 关闭标签页
bjs elements [selector] 列出可交互元素(带索引)
bjs click 按索引点击元素
bjs type 在元素中输入文本
bjs upload [selector] 上传文件到输入框(绕过系统对话框)
bjs text [selector] 提取页面可见文本
bjs html 获取元素HTML
bjs eval 在页面中执行JavaScript
bjs screenshot [path] 保存截图
bjs scroll [px]
bjs url 当前URL
bjs back / forward / refresh
bjs wait

坐标命令(跨域iframe、验证码、覆盖层):
bjs click-xy 通过CDP Input在页面坐标处点击
bjs click-xy --double 在坐标处双击
bjs click-xy --right 在坐标处右键点击
bjs hover-xy 在页面坐标处悬停
bjs drag-xy 在坐标之间拖拽
bjs iframe-rect 获取iframe边界框(用于click-xy定位)

工作原理

elements 扫描页面中所有可交互元素(链接、按钮、输入框、下拉菜单等)——包括Shadow DOM内的元素(Web组件)。这意味着Reddit、GitHub以及其他使用Shadow DOM的现代SPA网站都能完全支持。扫描会递归穿透所有shadow根节点。

返回紧凑的编号列表:

[0] (link) Hacker News → https://news.ycombinator.com/news
[1] (link) new → https://news.ycombinator.com/newest
[2] (input:text) q
[3] (button) Submit

然后执行 click 3 或 type 2 search query —— 立即可操作,无需解释。

自动索引: 如果元素尚未索引,click 和 type 会自动为其建立索引。你可以在 open 后跳过调用 elements,直接使用 click/type。当需要查看页面内容时,再显式调用 elements。

导航或AJAX变化后: 如果时间戳过期,下次执行 click/type 时会自动重新索引元素。如需手动重新索引,再次调用 elements 即可。

真实鼠标事件: click 使用CDP的 Input.dispatchMouseEvent(mousePressed + mouseReleased),而非JS的 .click()。这能触发React/Vue/Angular的合成事件处理器,这些处理器会忽略普通的 .click() 调用。在Instagram、GitHub、LinkedIn等SPA上可靠运行。

文件上传

upload 使用CDP的 DOM.setFileInputFiles 直接将文件注入隐藏的 元素——无需操作系统文件选择器对话框。适用于Instagram、Twitter以及任何支持文件上传的网站。

bash
bjs upload ~/photos/image.jpg # 自动查找 input[type=file]
bjs upload ~/docs/resume.pdf input.file-drop # 指定选择器

Token效率

方案每次交互的Token数说明
bjs~50-200索引列表,单行响应
浏览器工具(快照)
~2,000-5,000 | 完整无障碍树 | | 浏览器工具+思考 | ~3,000-8,000 | 加上查找引用的推理过程 |

在10步流程中:~1,500 tokens(bjs)vs ~30,000-80,000(浏览器工具)

典型流程

bash
bjs open https://example.com # 导航
bjs elements # 查看可点击内容
bjs click 5 # 点击元素[5]
bjs type 12 hello world # 在元素[12]中输入
bjs text # 读取页面内容
bjs screenshot /tmp/result.png # 视觉验证

Shadow DOM支持

bjs自动穿透Shadow DOM边界。使用Web组件构建的网站(Reddit、GitHub等)开箱即用——elements、click、type 和 text 都会递归进入shadow根节点。无需特殊标志。

坐标命令(iframe、验证码、覆盖层)

当无法通过索引使用 click 时——例如目标位于跨域iframe内(验证码复选框、支付表单、OAuth小部件)——使用基于坐标的命令,这些命令在操作系统层面派发真实的CDP Input事件。这些命令绕过所有DOM边界。

在iframe内点击的工作流程:
bash
bjs iframe-rect iframe[title*=hCaptcha] # 获取边界框

输出:x=95 y=440 w=302 h=76 center=(246, 478)

bjs click-xy 125 458 # 点击复选框位置

iframe-rect 返回iframe在页面上的位置。添加偏移量以定位其中的特定元素(例如复选框通常靠近左侧)。

其他用途:

  • - hover-xy — 触发需要鼠标位置的悬停菜单、工具提示
  • drag-xy — 滑块控件、拖放操作、画布交互
  • click-xy --double — 双击选择文本、展开项目
  • click-xy --right — 上下文菜单

何时使用坐标命令 vs click:

  • - click — 当元素出现在 elements 中时始终优先使用
  • click-xy — 仅当目标位于跨域iframe内或DOM索引无法访问时使用

提示

  • - 使用CSS选择器的 elements 可缩小范围:bjs elements .modal
  • eval 执行任意JS并返回结果——用于自定义提取
  • text 限制为8KB——对大多数页面足够,不会撑爆上下文
  • html 限制为10KB——用于检查特定元素
  • 通过管道传递给 grep 进行过滤:bjs elements | grep -i submit\|login

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 browser-js-1776419960 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 browser-js-1776419960 技能

通过命令行安装

skillhub install browser-js-1776419960

下载

⬇ 下载 browser-js v1.5.0(免费)

文件大小: 12.55 KB | 发布时间: 2026-4-17 19:26

v1.5.0 最新 2026-4-17 19:26
- Adds coordinate-based commands (`click-xy`, `hover-xy`, `drag-xy`, `iframe-rect`) for interacting with elements inside cross-origin iframes, captchas, overlays, and other non-indexable UI.
- Updates command list and documentation to explain when and how to use coordinate-based input vs. standard indexed element commands.
- Clarifies workflow and usage details for cross-origin iframe interaction, including coordinate calculation and tips.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部