Automatizacion sin framework con Bot Script
Usa el flag --bot-script de BotBrowser para automatizacion ligera del navegador mediante Chrome DevTools Protocol, sin dependencias externas.
Que es Bot Script?
BotBrowser incluye un modo de automatizacion integrado via --bot-script. Ejecuta un archivo JavaScript en un contexto privilegiado del navegador con acceso completo a la API chrome.debugger. No requiere Playwright, Puppeteer ni Node.js.
Como funciona
Al pasar --bot-script=tu-script.js, BotBrowser carga el archivo en un contexto privilegiado al inicio. Obtienes:
- Acceso completo a la API
chrome.debuggerpara enviar comandos CDP directamente. - Sin artefactos de framework en el contexto de la pagina.
- Ejecucion temprana antes de que se complete la primera navegacion.
- APIs estandar del navegador:
console,setTimeout,fetchy mas.
Inicio rapido
Crea 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.");
}
);
});
});
Lanza BotBrowser con tu perfil y script:
chromium-browser \
--bot-profile="/path/to/profile.enc" \
--bot-script="/path/to/my-script.js"
Bot Script vs Playwright/Puppeteer
| Bot Script | Playwright / Puppeteer | |
|---|---|---|
| Dependencias | Ninguna | Node.js + paquetes npm |
| Estilo de API | Callbacks chrome.debugger | Basado en Promises, selectores de alto nivel |
| Tiempo de setup | Instantaneo | Requiere instalacion y configuracion |
| Ideal para | Tareas ligeras de una pagina | Flujos de trabajo complejos multi-paso |
Solucion de problemas
"chrome.debugger API not available": Asegurate de usar el flag --bot-script.
El script no se ejecuta: Usa una ruta absoluta para --bot-script.
Fallo de attach: Otra sesion de depuracion puede estar conectada. Llama a chrome.debugger.detach() primero.