Saltar al contenido
Entrada · mouse · teclado · scroll

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.

El diff

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
Lee los parches del build abierto en GitHub

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.

Chromium 156.0.8078.47 → Clearcote Pro r57

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 planes

Preguntas 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

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.