Назад к блогу
Начало работы

Автоматизация без фреймворков с Bot Script

Используйте флаг --bot-script в BotBrowser для легковесной автоматизации браузера через Chrome DevTools Protocol без внешних зависимостей.

Что такое Bot Script?

BotBrowser включает встроенный режим автоматизации через --bot-script. Он запускает JavaScript-файл в привилегированном контексте браузера с полным доступом к API chrome.debugger. Не нужен Playwright, Puppeteer или Node.js.

Как это работает

При передаче --bot-script=your-script.js BotBrowser загружает ваш файл в привилегированный контекст при запуске. Вы получаете:

  • Полный доступ к API chrome.debugger для отправки CDP-команд напрямую.
  • Отсутствие артефактов фреймворка в контексте страницы.
  • Раннее выполнение до завершения первой навигации.
  • Стандартные API браузера: console, setTimeout, fetch и другие.

Быстрый старт

Создайте 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