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.

Qué plan lo incluye

El mouse, la escritura y el scroll humanizados están en todos los planes: una opción de lanzamiento en Python y Node, llamadas explícitas en .NET. En el build con licencia (gratis con GitHub), el reporte del puntero tiene mayor fidelidad, y en Pro, los clics por coordenadas de Python y Node 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í, como llamadas explícitas en lugar de una opción de lanzamiento: HumanClickAsync, HumanTypeAsync, HumanPressAsync, HumanScrollAsync, HumanDragToAsync y HumanSelectOptionAsync sobre una página o un locator. La opción humanize de un solo flag es para Python y Node.

¿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 con GitHub. Sin tarjeta.