Des entrées souris et clavier qui bougent comme une personne
L'automatisation standard téléporte le pointeur et tape à la vitesse d'une machine. Avec humanize activé, chaque clic, survol, remplissage, glisser-déposer et défilement dans Playwright passe par un même chemin humanisé : un curseur à la trajectoire courbe et adoucie, une frappe touche par touche au timing naturel et un défilement inertiel, le tout transmis sous forme d'événements natifs trusted.
Dans toutes les formules. Sur Pro, les clics par coordonnées suivent des mouvements humains enregistrés.
Activez-le, gardez votre 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()Points clés
Des trajectoires courbes, avec correction
Les déplacements suivent une courbe de Bézier légèrement arquée depuis la dernière position du curseur, parcourue en un mouvement principal rapide suivi d'une correction : la vitesse à plusieurs pics d'un vrai geste de pointage.
Des événements trusted
Les entrées sont natives : les événements arrivent avec isTrusted activé au lieu d'être déclenchés depuis un script de la page, et navigator.webdriver reste à false.
Une frappe rythmée
Les touches partent une à une avec des intervalles aléatoires, des pauses entre les mots et, de temps en temps, une faute de frappe corrigée. Les valeurs de plus de 200 caractères environ restent atomiques, pour que les remplissages en masse ne se traînent pas.
De vrais glisser-déposer
Un bouton enfoncé avec mouse.down() reste maintenu pendant le déplacement : down, move, up donne un vrai glisser avec bouton maintenu, et locator.dragTo est lui aussi humanisé.
Un défilement avec inertie
Le défilement à la molette ralentit progressivement, comme avec une vraie molette ou un vrai trackpad, avec de temps à autre une pause de lecture.
Des clics sûrs, un mouvement visible
Chaque clic trusted est d'abord vérifié (visible, activé, stable, non recouvert) et bascule sinon sur le clic natif. showCursor dessine le pointeur pour que vous puissiez suivre.
Comment cela s'intègre à votre script
humanize agit au niveau de la page (click, hover, type, fill, mouse.*, keyboard.type) et au niveau du locator (click, type, fill, pressSequentially, dragTo) : les scripts existants en profitent sans modification.
N'ajoutez pas votre propre easing par-dessus. Définissez des points de passage et laissez humanize interpoler entre eux : un easing maison appliqué à chaque étape produit des statistiques de mouvement que les entrées standard ne produisent jamais.
Chaque build génère les trajectoires : le SDK planifie les déplacements, les glisser-déposer, les défilements et la frappe, et les clics par coordonnées (mouse.click) suivent la trajectoire propre au moteur. Sur Pro, ces clics suivent un mouvement dérivé de gestes humains enregistrés, et sur le build sous licence (Gratuit avec GitHub ou Pro), le pointeur est restitué plus fidèlement. Rien ne change dans votre code d'une formule à l'autre.
Cas d'usage
Pages qui observent le comportement
Des parcours qui observent comment bougent le pointeur et le clavier, pas seulement où ils arrivent.
Interactions par glisser-déposer
Le glisser avec bouton maintenu fonctionne : sliders et glisser-déposer se comportent comme à la main.
Workflows riches en formulaires
Inscriptions, paiements et pages de paramètres saisis au clavier plutôt que collés en un seul événement.
Démos et enregistrements
showCursor rend les parcours automatisés lisibles en vidéo.
Clearcote est conçu pour la confidentialité, les tests, la recherche et l'automatisation licite. Vous êtes responsable de l'usage que vous en faites et du respect des conditions d'utilisation des sites que vous visitez.
Offres qui l'incluent
La souris, la frappe et le défilement humanisés sont inclus dans toutes les formules : une seule option de lancement en Python et Node, des appels explicites en .NET. Sur le build sous licence (gratuit avec GitHub), le pointeur est restitué plus fidèlement, et sur Pro, les clics par coordonnées en Python et Node suivent des mouvements humains enregistrés.
Comparer les offresFAQ
Comment rendre les mouvements de souris de Playwright plus humains ?
Lancez le navigateur via le SDK Clearcote avec humanize: true (Python : humanize=True). Vos appels existants à page.click, fill et mouse déplacent alors le pointeur et tapent de façon humanisée, sans autre changement.
Les événements sont-ils trusted ?
Oui. Ils sont transmis comme des entrées natives, donc event.isTrusted vaut true ; rien n'est synthétisé depuis un script de la page. (showCursor ajoute une surcouche visible à la page : réservez-le aux démos.)
Est-ce que cela ralentit les scripts ?
Un peu, de la même façon qu'une personne est plus lente qu'une téléportation. Les valeurs longues (plus de 200 caractères environ) sont remplies d'un coup, si bien que la saisie de données en masse reste rapide.
Est-ce disponible dans le SDK .NET ?
Oui, sous forme d'appels explicites plutôt que d'option de lancement : HumanClickAsync, HumanTypeAsync, HumanPressAsync, HumanScrollAsync, HumanDragToAsync et HumanSelectOptionAsync sur une page ou un locator. L'option humanize en un seul flag est propre à Python et Node.
Puis-je l'utiliser avec ma propre bibliothèque de mouvements de souris ?
Mieux vaut éviter. Superposer l'easing d'une autre bibliothèque à celui de humanize produit un mouvement que ni une personne ni une entrée standard ne produisent. Donnez les cibles à Playwright et laissez humanize tracer le chemin.
Aller plus loin dans la documentation
Fonctionnalités associées
Un Chromium prêt à brancher sur Playwright et Puppeteer : un seul import à changer en Python, Node ou .NET, avec le navigateur téléchargé et vérifié par SHA-256 pour vous.
Un seed par compte : le même appareil à chaque session, un autre pour le compte suivant, avec des cookies et un stockage qui persistent d'une exécution à l'autre.
Donnez à browser-use, Stagehand, Crawl4AI ou à votre propre agent un Chromium dont l'identité est définie au niveau du moteur, ou lancez l'agent intégré optionnel de Clearcote avec votre propre modèle.
Canvas, WebGL, WebGPU, audio, polices, écran et matériel dérivés d'un seul seed dans le moteur C++, avec la locale et le fuseau horaire assortis : chaque surface concorde avec toutes les autres.
À lire aussi
Essayer Clearcote
S'utilise tel quel avec Playwright et Puppeteer, cohérent jusqu'au handshake TLS, avec un build open source comme point de départ.
Gratuit pour un navigateur avec GitHub. Sans carte.