Pular para o conteúdo
Input · mouse · teclado · rolagem

Input de mouse e teclado que se move como uma pessoa

A automação padrão teletransporta o ponteiro e digita em velocidade de máquina. Com o humanize ligado, todo clique, hover, preenchimento, arraste e rolagem no Playwright passa por um único caminho humanizado: cursor com trajeto curvo e easing, digitação tecla por tecla com tempos naturais e rolagem com inércia, tudo disparado como eventos nativos trusted.

Em todos os planos. No Pro, os cliques por coordenada seguem movimentos humanos gravados.

Ative e mantenha o seu 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()

Destaques

Trajetos curvos, com correção

Os movimentos seguem uma curva de Bézier levemente arqueada a partir da última posição do cursor, percorrida como um movimento principal rápido mais uma correção: a velocidade com vários picos de um movimento real até o alvo.

Eventos trusted

O input é nativo, então os eventos chegam com isTrusted definido, em vez de serem disparados por script da página, e o navigator.webdriver continua false.

Digitação com ritmo

As teclas vão uma de cada vez, com intervalos aleatórios, pausas entre palavras e, de vez em quando, um erro de digitação corrigido. Valores acima de uns 200 caracteres continuam atômicos, para que preenchimentos em massa não se arrastem.

Arrastes de verdade

Um botão pressionado com mouse.down() continua pressionado durante o movimento, então down, move, up é um arraste de verdade com o botão segurado, e o locator.dragTo também é humanizado.

Rolagem com inércia

A rolagem pela roda desacelera como numa roda de mouse ou num trackpad de verdade, com uma pausa de vez em quando para leitura.

Cliques seguros, movimento visível

Cada clique trusted é verificado antes (visível, habilitado, estável, não coberto) e, se não passar, cai no clique nativo. O showCursor desenha o ponteiro para você acompanhar.

Como isso se encaixa no seu script

O humanize funciona no nível da page (click, hover, type, fill, mouse.*, keyboard.type) e no nível do locator (click, type, fill, pressSequentially, dragTo), então scripts existentes passam a usá-lo sem nenhuma edição.

Não empilhe o seu próprio easing por cima. Defina waypoints e deixe o humanize interpolar entre eles: um easing feito à mão, passo a passo, gera estatísticas de movimento que o input padrão nunca produz.

Todo build gera os trajetos de movimento: o SDK planeja movimentos, arrastes, rolagens e digitação, e os cliques por coordenada (mouse.click) seguem o trajeto do próprio motor. No Pro, esses cliques seguem movimentos derivados de gravações de movimento humano, e no build licenciado (grátis com GitHub ou Pro) o reporte do ponteiro tem mais fidelidade. Nada no seu código muda entre eles.

Para que as pessoas usam

Páginas que observam o comportamento

Fluxos que observam como o ponteiro e o teclado se movem, e não só onde eles chegam.

Interações de arrastar

Arrastes com o botão pressionado funcionam, então sliders e drag-and-drop se comportam como quando feitos à mão.

Fluxos cheios de formulários

Cadastros, checkouts e páginas de configuração digitados, e não colados num único evento.

Demos e gravações

O showCursor deixa os walkthroughs automatizados fáceis de acompanhar em vídeo.

O Clearcote foi feito para privacidade, testes, pesquisa e automação lícita. Você é responsável pela forma como o usa e por seguir os termos dos sites que visita.

Qual plano inclui

Mouse, digitação e rolagem humanizados estão em todos os planos: uma opção de launch em Python e Node, chamadas explícitas no .NET. No build licenciado (grátis com GitHub), o reporte do ponteiro tem mais fidelidade, e no Pro os cliques por coordenada em Python e Node seguem movimentos humanos gravados.

Comparar planos

Perguntas frequentes

Como deixar o movimento do mouse no Playwright parecido com o de uma pessoa?

Inicie pelo SDK do Clearcote com humanize: true (Python: humanize=True). As chamadas de page.click, fill e mouse que você já tem passam a mover e digitar do jeito humanizado, sem nenhuma outra mudança.

Os eventos são trusted?

Sim. Eles são disparados como input nativo, então event.isTrusted é true; nada é sintetizado por script da página. (O showCursor adiciona um overlay visível à página, então deixe ele para demos.)

Isso deixa os scripts mais lentos?

Um pouco, do mesmo jeito que uma pessoa é mais lenta que um teletransporte. Valores longos (acima de uns 200 caracteres) são preenchidos de uma vez, então a entrada de dados em massa continua rápida.

Está disponível no SDK .NET?

Sim, como chamadas explícitas em vez de uma opção de launch: HumanClickAsync, HumanTypeAsync, HumanPressAsync, HumanScrollAsync, HumanDragToAsync e HumanSelectOptionAsync numa page ou num locator. A opção humanize, de uma flag só, é de Python e Node.

Posso usar a minha própria biblioteca de movimento de mouse junto?

Melhor não. Empilhar o easing de outra biblioteca por cima do easing do humanize gera um movimento que nem uma pessoa nem o input padrão produzem. Passe os alvos para o Playwright e deixe o humanize cuidar do trajeto.

Vá mais fundo na documentação

Recursos relacionados

Experimente o Clearcote

Plug-and-play no Playwright e no Puppeteer, coerente até o handshake TLS, com um build de código aberto para começar.

Grátis para um navegador com GitHub. Sem cartão.