Loading...
Loading...
面向AI Agent的浏览器自动化技能,基于mb CLI实现。当Agent需要浏览网页、截取屏幕截图、抓取文本、填写表单、点击元素、录制屏幕视频、在页面中运行JS或审核设计时,可使用该技能。触发词包括:‘浏览’、‘打开页面’、‘截取屏幕截图’、‘抓取数据’、‘填写表单’、‘点击按钮’、‘网页自动化’、‘录制屏幕’、‘设计审核’、‘可访问性检查’。
npx skill4agent add runablehq/mini-browser mini-browsermbmb# 1. Is mb installed?
which mb && echo "mb: ok" || echo "mb: MISSING"
# 2. Is Chrome listening on CDP?
curl -sf http://127.0.0.1:9222/json/version > /dev/null && echo "chrome: ok" || echo "chrome: NOT RUNNING"mbmbnpm install -g @runablehq/mini-browsermb-start-chrome--remote-debugging-port=9222mb-restart-chromemb go "https://example.com" && mb text| 变量名 | 默认值 | 描述 |
|---|---|---|
| | CDP端口 |
| 自动检测 | Chrome/Chromium二进制文件路径 |
| | PID文件位置 |
| | Chrome配置文件目录 |
| 命令 | 描述 |
|---|---|
| 导航至指定URL(等待网络空闲) |
| 打印当前URL |
| 返回上一页 |
| 前进至下一页 |
| 命令 | 描述 |
|---|---|
| 获取可见文本内容(默认:body元素) |
| 截取屏幕截图保存为PNG(默认:./shot.png) |
| 列出当前视口中的可交互元素及其坐标 |
| 命令 | 描述 |
|---|---|
| 在指定坐标位置点击 |
| 输入文本(若指定坐标:先选中第一个匹配元素) |
| 通过标签/名称/占位符填充表单字段 |
| 按下指定按键(Enter、Tab、Meta+a等) |
| 将鼠标悬停在指定坐标位置 |
| 在两点之间拖拽 |
| 滚动页面(默认:向下滚动500像素) |
| 命令 | 描述 |
|---|---|
| 开始录制(支持.webm、.mp4、.gif格式) |
| 停止录制并保存文件 |
| 检查录制是否处于活跃状态 |
| 命令 | 描述 |
|---|---|
| 列出所有打开的标签页 |
| 新建标签页,返回标签页索引 |
| 关闭指定标签页(默认:最后一个标签页) |
| 命令 | 描述 |
|---|---|
| 在页面上下文环境中运行JavaScript代码 |
| 等待指定时长/选择器出现/网络空闲/URL匹配模式 |
| 设计审核(包含调色板、排版、对比度、可访问性、SEO等) |
| 流式输出控制台日志(按Ctrl+C停止) |
| 标志位 | 默认值 | 描述 |
|---|---|---|
| 30000 | 命令超时时间 |
| 0 | 目标标签页索引 |
| false | 输出结构化JSON格式 |
| false | 右键点击 |
| false | 双击 |
| 30 | 录制帧率 |
| 1 | 录制缩放比例 |
mb snap # list interactive elements with (x, y)
mb click 512 380 # click the button at those coordinates
mb wait networkidle # wait for the page to settle
mb snap # observe againmb go "https://example.com/login"
mb fill "Email=user@example.com" "Password=hunter2"
mb key Enter
mb wait url:/dashboardmb shot page.pngmb text "main" # text from <main>
mb text "#content" # text from #content
mb text # full body textmb js 'document.title'
echo 'document.querySelectorAll("a").length' | mb js -mb record start demo.mp4 --fps 30 --scale 1
# ... interact with the page ...
mb record stopmb audit # human-readable report
mb audit --json # structured JSON outputmb js 'document.querySelector("[class*=cookie]")?.remove()'mb wait 2000 # sleep 2 seconds
mb wait ".modal" # wait for selector to appear
mb wait networkidle # wait for no network activity
mb wait url:/dashboard # wait for URL to contain stringsnapsnaptexttext "main"text "p"gowait ".selector"typefill--jsonsnap[{role, name, x, y, state}]tab list[{index, url, title}]logsaudit~/.mb-recorder.jsontab close| 问题 | 解决方法 |
|---|---|
| "Chrome not found" | 设置环境变量 |
| 连接被拒绝 | 先运行 |
| 录制状态异常 | 删除文件 |
| Chrome窗口大小异常 | 执行 |
元素未出现在 | 执行 |