Saltar al contenido
Extensiones · MV2 · MV3 · headless

Extensiones de Chrome, Manifest V2 incluido

Pasa una lista de carpetas de extensiones descomprimidas y Clearcote las carga al iniciar. Manifest V3 funciona, y también Manifest V2, que Chrome estándar ya terminó de desactivar, así que los bloqueadores de contenido MV2 y las herramientas internas más antiguas siguen funcionando. También en modo headless.

En todos los planes, en Windows y Linux.

Una lista de carpetas

from clearcote import launch_persistent_context

ctx = launch_persistent_context(
    "./profile",
    extensions=["./ext/ublock", "./ext/my-helper"],   # unpacked directories, MV2 or MV3
    headless=True,                                     # works headed too
)
page = ctx.pages[0] if ctx.pages else ctx.new_page()
page.goto("https://example.com")

Lo más destacado

Manifest V2 sigue funcionando

El conjunto de parches de privacidad upstream restaura la compatibilidad con MV2, así que los bloqueadores que solo existen para MV2 y las herramientas más antiguas siguen funcionando aquí, aunque ya dejaron de funcionar en Chrome.

Headless y con interfaz

Las extensiones se cargan en modo headless además de con interfaz, sin necesidad de una pantalla virtual solo para que funcione una.

La combinación de flags, resuelta

--load-extension por sí solo se ignora bajo automatización. El SDK lo configura junto con --disable-extensions-except, para que la extensión aparezca de verdad.

Carpetas, no archivos .crx

Apunta a la carpeta que contiene manifest.json. Un .crx se descomprime en una.

Windows y Linux

La misma opción en ambas plataformas, con interfaz y en modo headless.

Tu código, tu superficie

Clearcote no oculta las extensiones. Prefiere las que no tienen web_accessible_resources, ya que una página puede sondear esos recursos.

Cómo se cargan las extensiones

Las extensiones necesitan un perfil donde vivir. launch() se ejecuta sobre un perfil desechable, así que las admite, igual que launch_persistent_context / launchPersistentContext y serve() (.NET: Extensions). Los únicos lanzamientos que no pueden son los de incógnito (ephemeral_profile=False, el launch() de la API asíncrona, LaunchAsync de .NET). Los navegadores alojados no cargan extensiones.

Clearcote no puede instalar ni actualizar extensiones desde la Chrome Web Store: los parches de privacidad upstream eliminan esa integración, así que las extensiones cargadas de esta forma nunca se actualizan solas. En su lugar, distribuye el directorio descomprimido junto con tu automatización, el mismo modelo que usan Playwright y Puppeteer.

Una extensión es observable. Los content scripts que reescriben el DOM, inyectan estilos o bloquean solicitudes cambian lo que mide una página, y cualquier página puede obtener los recursos web accesibles declarados. Si solo necesitas bloquear solicitudes, Network.setBlockedURLs de CDP en la capa de automatización bloquea por patrón de URL sin superficie de extensión y conserva la caché (route() de Playwright también funciona, pero desactiva la caché).

Para qué se usa

Bloqueo de contenido

Usa el build MV2 de un bloqueador que Chrome ya no carga.

Pruebas de tu propia extensión

Pruebas end-to-end de una extensión, en modo headless, en CI.

Herramientas internas

Extensiones de la empresa para asistentes de inicio de sesión, anotación o QA, dentro de sesiones automatizadas.

Clearcote está hecho para la privacidad, las pruebas, la investigación y la automatización lícita. Tú eres responsable de cómo lo usas y de respetar los términos de los sitios que visitas.

Qué plan lo incluye

En todos los planes, en Windows y Linux, con interfaz y en modo headless.

Comparar planes

Preguntas frecuentes

¿Puede Playwright cargar extensiones de Chrome en modo headless?

Con Clearcote, sí. Pasa las carpetas descomprimidas como extensions a launch() o a un contexto persistente y se cargan tanto en modo headless como con interfaz, sin flags adicionales.

¿Sigue funcionando Manifest V2?

Sí. Chrome estándar ya terminó de desactivar MV2, pero el conjunto de parches de privacidad upstream en el que se basa Clearcote lo restaura, así que funcionan tanto las extensiones MV2 como las MV3.

¿Puedo instalar extensiones desde la Chrome Web Store?

No. La integración con la Web Store se elimina junto con los demás servicios de Google. Descarga o compila la extensión, descomprímela si es un .crx y pasa la carpeta.

¿Por qué no aparece mi extensión?

Casi siempre es la ruta: tiene que apuntar a la carpeta que contiene manifest.json, no a su carpeta padre ni a un .crx. Si un content script nunca se ejecuta, comprueba que su patrón matches cubra la URL; http://localhost/* no coincide con http://127.0.0.1:8080/.

¿Pueden los sitios web saber que hay una extensión instalada?

A veces. Una página puede notar los cambios que un content script hace en el DOM, y puede intentar obtener los recursos web accesibles que declara una extensión. Esto ocurre en cualquier navegador con extensiones, y Clearcote no lo oculta.

Profundiza en la documentación

Características relacionadas

Prueba Clearcote

Un reemplazo directo para Playwright y Puppeteer, coherente hasta el handshake TLS, con un build de código abierto para empezar.

Gratis para un navegador con GitHub. Sin tarjeta.