返回博客
入门

使用 Bot Script 进行无框架自动化

使用 BotBrowser 的 --bot-script 参数进行轻量级浏览器自动化,通过 Chrome DevTools Protocol 直接控制,无需外部依赖。

什么是 Bot Script?

BotBrowser 内置了一个自动化模式 --bot-script。它在浏览器的特权上下文中运行 JavaScript 文件,可完全访问 chrome.debugger API。无需 Playwright、Puppeteer 或 Node.js。

工作原理

传入 --bot-script=your-script.js 后,BotBrowser 在启动时将文件加载到特权上下文中。你可以:

  • 完全访问 chrome.debugger API,直接发送 CDP 命令。
  • 页面上下文中没有框架痕迹。
  • 在首次页面导航完成前执行。
  • 使用标准浏览器 API:consolesetTimeoutfetch 等。

快速开始

创建 my-script.js

chrome.debugger.getTargets(function (targets) {
  const page = targets.find((t) => t.type === "page");
  if (!page) return;

  chrome.debugger.attach({ targetId: page.id }, "1.3", function () {
    if (chrome.runtime.lastError) {
      console.log("Attach failed:", chrome.runtime.lastError.message);
      return;
    }

    chrome.debugger.sendCommand(
      { targetId: page.id },
      "Page.navigate",
      { url: "https://example.com" },
      function () {
        console.log("Navigation started.");
      }
    );
  });
});

使用配置文件和脚本启动 BotBrowser:

chromium-browser \
  --bot-profile="/path/to/profile.enc" \
  --bot-script="/path/to/my-script.js"

Bot Script 与 Playwright/Puppeteer 对比

Bot ScriptPlaywright / Puppeteer
依赖Node.js + npm 包
API 风格回调式 chrome.debuggerPromise 式,高级选择器
启动时间即时需要安装和配置
适用场景轻量级单页任务复杂多步骤工作流

故障排除

"chrome.debugger API not available":确保使用了 --bot-script 参数。

脚本不执行--bot-script 使用绝对路径。

Attach 失败:可能已有其他调试会话连接。先调用 chrome.debugger.detach()

了解更多

#bot-script#automation#cdp#getting-started#framework-less