返回顶部
b

browser-automation-ultra浏览器自动化

Zero-token browser automation via Playwright scripts with CDP lock management and human-like interaction. Use when: (1) automating any browser-based workflow (publish, login, scrape, fill forms), (2) reducing token cost by converting browser-tool explorations into replayable scripts, (3) avoiding CDP port conflicts between OpenClaw browser and Playwright, (4) needing anti-detection/human-like mouse/keyboard behavior for platforms with bot detection. NOT for: simple URL fetches (use web_fetch ins

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

browser-automation-ultra

Browser Automation Ultra

探索 → 录制 → 回放 → 修复。将昂贵的浏览器工具交互转换为零令牌的 Playwright 脚本,复用 OpenClaw 的 Chrome 会话(保持 Cookie/登录状态)。

前置条件

安装 Playwright(每台机器一次):

bash
npm install -g playwright

或在工作区中:npm init -y && npm install playwright

无需下载浏览器——脚本通过 CDP 连接到 OpenClaw 现有的 Chrome。

架构

Chrome 用户数据:~/.openclaw/browser/openclaw/user-data
↕ 共享 Cookie/登录(互斥 CDP)
┌──────────────┐ ┌──────────────────┐
│ 浏览器工具 │ 或 │ Playwright 脚本 │
│ (探索) │ │ (零令牌) │
└──────────────┘ └──────────────────┘
↕ 由 browser-lock.sh 管理

一次只能连接一个 CDP 客户端。browser-lock.sh 处理互斥锁。

设置

  1. 1. 将 scripts/browser-lock.sh 复制到工作区的 scripts/ 目录
  2. 将 scripts/utils/human-like.js 复制到工作区的 scripts/browser/utils/
  3. chmod +x scripts/browser-lock.sh
  4. 创建 scripts/browser/ 目录存放自动化脚本

核心工作流

1. 探索(浏览器工具,消耗令牌)

使用 OpenClaw 的 browser 工具(快照/操作)来找出工作流程。记录选择器、页面流程和关键等待点。

2. 录制(编写 Playwright 脚本)

将步骤转换为脚本。保存到 scripts/browser/<动词>-<目标>.js。使用模板模式:

javascript
const { chromium } = require(playwright);
const { humanDelay, humanClick, humanType, humanThink, humanBrowse } = require(./utils/human-like);

function discoverCdpUrl() {
try {
const { execSync } = require(child_process);
const ps = execSync(ps aux | grep remote-debugging-port | grep -v grep, { encoding: utf8 });
const match = ps.match(/remote-debugging-port=(\d+)/);
return http://127.0.0.1:${match ? match[1] : 18800};
} catch { return http://127.0.0.1:18800; }
}

async function main() {
const browser = await chromium.connectOverCDP(discoverCdpUrl());
const context = browser.contexts()[0]; // 复用现有上下文(Cookie/登录)
const page = await context.newPage();
try {
// 在此处编写自动化代码——使用类人函数
await page.goto(https://example.com, { waitUntil: networkidle, timeout: 30000 });
await humanBrowse(page); // 模拟浏览页面
await humanClick(page, button.submit);
await humanType(page, input[name=title], Hello World);
} finally {
await page.close(); // 永远不要调用 browser.close()——会关闭整个 Chrome
}
}
main().then(() => process.exit(0)).catch(e => { console.error(❌, e.message); process.exit(1); });

3. 回放(零令牌)

bash
./scripts/browser-lock.sh run scripts/browser/my-task.js [参数]
./scripts/browser-lock.sh run --timeout 120 scripts/browser/my-task.js

4. 修复(出错时)

  1. 1. 读取脚本错误输出
  2. 使用 browser 工具(快照)重新探索失败的步骤,检查当前 UI
  3. 用更正后的选择器/逻辑更新脚本
  4. 重试

切勿盲目猜测修复。始终重新探索实际页面状态。

browser-lock.sh

管理 OpenClaw 浏览器和 Playwright 脚本之间的 CDP 互斥锁。

bash
./scripts/browser-lock.sh run [参数] # 获取 → 运行 → 释放(默认 300 秒)
./scripts/browser-lock.sh run --timeout 120

Archiver·手机版·闲社网·闲社论坛·智能体自动化市场· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2026 闲社网·AI智能体论坛·AI自动化解决方案·http://xianshe.com

p2p_official_large