Banco de pruebas · input humano vs. sintético
Mide en vivo las señales que separan un cursor/teclado real de uno inyectado por CDP. Tres pasadas: mano · Playwright · SendInput.
Estado de sesión (correlación cruzada)
document.hasFocus()—
visibilityState—
navigator.webdriver—
tiempo de pasada0.0 s
navigator.language—
devicePixelRatio—
Mové el cursor y hacé clic en el botón (salta a otra posición en cada clic). Cada clic mide teleport, distancia al último mousemove y duración down→up.
0 caracteres · meta 2000insertFromPaste: 0
Ratón · movimiento
mousemove (total)0
tasa mousemove (últ. 1 s)0 /s
pointerrawupdate (total)0
getCoalescedEvents() máx0
getCoalescedEvents() prom0
wheel (total)0
Ratón · inyección y clic
screenX − clientX (últ.)—
¿alguna vez ≠ 0?—
clics0
teleport_click_ratio—
dist. últ. move → clic (prom)—
duración clic prom ± σ—
Teclado · ritmo
teclas (keydown)0
dwell prom ± σ (ms)—
flight prom (ms)—
flight negativos (rollover)0
solapes (down con tecla viva)0
event.repeat0
Teclado · coherencia
keydown sin foco0
gap clic → 1ª tecla (ms)—
insertText0
insertFromPaste0
deleteContentBackward0
code≠key coherente—
Veredicto por señal (verde = humano/OS · rojo = huella de inyección)
Pasadas guardadas · comparativa lado a lado
Todavía no hay pasadas guardadas. Corré una pasada completa (mover, clicar, escribir), poné la etiqueta y pulsá «Guardar pasada».
Privacidad: nada de lo capturado se envía a ningún servidor — no hay fetch, beacon ni analítica.
El corpus de tecleo es un biométrico: se trata como credencial, solo se descarga a tu disco local (R19/§10 del informe de teclado).
Las pasadas guardadas viven en localStorage de este navegador. Cómo se usa: (a) Fernando con la mano → etiqueta a-mano · (b) Playwright/CDP → b-cdp · (c) SendInput sobre Chrome real → c-sendinput.
Guardá cada una y comparalo en la tabla. Preguntas que resuelve: ¿CDP emite pointerrawupdate? ¿sigue vivo el bug screenX===clientX? ¿SendInput es indistinguible en las nueve métricas?