Entrada de mouse y teclado que se mueve como una persona
La automatización estándar teletransporta el puntero y escribe a velocidad de máquina. Con humanize activado, cada clic, hover, llenado de campo, arrastre y scroll en Playwright pasa por una misma ruta humanizada: un cursor con trayectoria curva y suavizada, escritura tecla por tecla con tiempos naturales y scroll con inercia, todo despachado como eventos nativos confiables.
En todos los planes. En Pro, los clics por coordenadas siguen movimientos humanos grabados.
Actívalo y conserva tu script
from clearcote import launch
browser = launch(fingerprint="seed-123", humanize=True, show_cursor=True)
page = browser.new_page()
page.goto("https://example.com")
page.click("text=Sign in") # eased curve, then a trusted click
page.fill("#email", "you@example.com") # focus, then key-by-key typing
page.locator("#password").type("s3cr3t") # locators are humanized too
# a held-button drag (e.g. a slider): the press stays held across the move
x0, y0, x1 = 100, 300, 400 # the handle's start, and where to release it
page.mouse.move(x0, y0); page.mouse.down()
page.mouse.move(x1, y0); page.mouse.up()
browser.close()Lo más destacado
Trayectorias curvas y con corrección
Los movimientos siguen una trayectoria Bézier ligeramente curvada desde la última posición del cursor, recorrida como un movimiento principal rápido más una corrección: la velocidad con varios picos de un movimiento de alcance real.
Eventos confiables
La entrada es nativa, así que los eventos llegan con isTrusted activado en lugar de despacharse desde el script de la página, y navigator.webdriver sigue en false.
Escritura con ritmo
Las teclas se pulsan de una en una con intervalos aleatorios, pausas entre palabras y, de vez en cuando, un error de tecleo corregido. Los valores de más de unos 200 caracteres se mantienen atómicos para que el llenado masivo no se eternice.
Arrastres reales
Un botón presionado con mouse.down() se mantiene presionado durante el movimiento, así que down, move, up es un arrastre real con el botón presionado, y locator.dragTo también se humaniza.
Scroll con inercia
El scroll con la rueda se desacelera como lo hace una rueda o un trackpad real, con alguna pausa ocasional para leer.
Clics seguros, movimiento visible
Cada clic confiable se verifica primero (visible, habilitado, estable, sin nada encima) y, si no pasa, recurre al clic nativo. showCursor dibuja el puntero para que puedas verlo.
Cómo encaja en tu script
humanize funciona a nivel de página (click, hover, type, fill, mouse.*, keyboard.type) y a nivel de locator (click, type, fill, pressSequentially, dragTo), así que los scripts existentes lo aprovechan sin modificaciones.
No superpongas tu propio easing. Define puntos de paso y deja que humanize interpole entre ellos: un easing por paso hecho a mano genera estadísticas de movimiento que la entrada estándar nunca produce.
Todos los builds generan las trayectorias de movimiento: el SDK planifica los movimientos, los arrastres, el scroll y la escritura, y los clics por coordenadas (mouse.click) usan la propia trayectoria del motor. En Pro, esos clics siguen un movimiento derivado de movimientos humanos grabados, y en el build con licencia (gratis con GitHub o Pro) el reporte del puntero tiene mayor fidelidad. Nada cambia en tu código entre uno y otro.
Para qué se usa
Páginas que observan el comportamiento
Flujos que se fijan en cómo se mueven el puntero y el teclado, no solo en dónde terminan.
Interacciones de arrastre
Los arrastres con el botón presionado funcionan, así que los sliders y el arrastrar y soltar se comportan como cuando se hacen a mano.
Flujos con muchos formularios
Registros, checkouts y páginas de configuración escritos tecla a tecla en lugar de pegados en un solo evento.
Demos y grabaciones
showCursor hace que los recorridos automatizados se puedan seguir en video.
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.
38.921 líneas entre Chromium original y Clearcote Pro.
Esa es la distancia entre el build Pro y el Chromium que distribuye Google. Cada valor que un sitio puede leer se define donde Chromium lo calcula, así que la página, sus workers y sus iframes describen el mismo dispositivo.
- Canvas
- WebGL
- WebGPU
- Audio
- Fuentes
- Pantalla y ventana
- WebRTC
- TLS
- Client hints
- Tiempos de entrada
- Voces y códecs
Build Pro, contado sobre su pila de parches de r57 (Chromium 156.0.8078.47). El build abierto gratuito es un conjunto de parches más pequeño y público.
345 files changed, 35915 insertions(+), 3006 deletions(-)
240 parches
Archivos modificados, por área
- Motor de renderizado (Blink)118
- Navegador (chrome/)52
- Capa content42
- Componentes39
- Pila de red22
- Interfaz y ventanas14
- TLS (BoringSSL)11
- V8 y URL17
- Todo lo demás30
Qué plan lo incluye
El ratón, la escritura y el desplazamiento humanizados están en todos los niveles: una opción de lanzamiento en Python, Node y .NET, y en .NET también llamadas explícitas. En el build con licencia (gratis con GitHub) el puntero informa con más fidelidad, y en Pro los clics por coordenadas siguen movimientos humanos grabados.
Comparar planesPreguntas frecuentes
¿Cómo hago que el movimiento del mouse en Playwright parezca humano?
Inicia el navegador con el SDK de Clearcote y humanize: true (Python: humanize=True). Tus llamadas existentes a page.click, fill y mouse pasan a moverse y escribir de forma humanizada, sin ningún otro cambio.
¿Los eventos son confiables?
Sí. Se despachan como entrada nativa, así que event.isTrusted es true; nada se sintetiza desde el script de la página. (showCursor agrega a la página una capa visible, así que resérvalo para demos.)
¿Hace más lentos los scripts?
Un poco, igual que una persona es más lenta que un teletransporte. Los valores largos (de más de unos 200 caracteres) se completan de una vez, así que la carga masiva de datos sigue siendo rápida.
¿Está disponible en el SDK de .NET?
Sí. Desde el SDK 0.58.0 la opción de lanzamiento Humanize = true humaniza cada página y ventana emergente de un lanzamiento, como humanize en Python y Node. También hay llamadas explícitas: HumanClickAsync, HumanTypeAsync, HumanPressAsync, HumanScrollAsync, HumanDragToAsync y HumanSelectOptionAsync sobre una página o un locator.
¿Puedo usar mi propia biblioteca de movimiento del mouse con esto?
Mejor no. Superponer el easing de otra biblioteca al de humanize genera un movimiento que no produciría ni una persona ni la entrada estándar. Dale a Playwright los objetivos y deja que humanize se encargue de la trayectoria.
Profundiza en la documentación
Características relacionadas
Un Chromium de reemplazo directo para Playwright y Puppeteer: un solo cambio de import en Python, Node o .NET, y el navegador se descarga y se verifica con SHA-256 por ti.
Un seed por cuenta: el mismo dispositivo en cada sesión, uno distinto para la siguiente cuenta, con cookies y almacenamiento que persisten entre ejecuciones.
Dale a browser-use, Stagehand, Crawl4AI o tu propio agente un Chromium con identidad a nivel del motor, o ejecuta el agente opcional de Clearcote integrado en el navegador con tu propio modelo.
Canvas, WebGL, WebGPU, audio, fuentes, pantalla y hardware derivados en el motor C++ a partir de un solo seed, con la configuración regional y la zona horaria a juego, para que cada superficie coincida con todas las demás.
Lecturas 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: GitHub, una verificación de tarjeta o una cuenta de Google de empresa. Nunca se cobra.