feat: anti-détection robot — Bézier mouse + frappe char-by-char
Pour les environnements Citrix avec détection de robots : - Souris : courbe de Bézier quadratique avec déviation aléatoire et vitesse variable (25 étapes, plus lent début/fin) - Texte : frappe caractère par caractère via KeyCode.from_char() avec délai aléatoire 40-120ms (pas de copier-coller) - Plus de presse-papiers (Ctrl+V détectable) Annulation du fix raw_keys→clipboard (plus nécessaire). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1258,19 +1258,6 @@ def build_replay_from_raw_events(
|
||||
if session_dir_path:
|
||||
_attach_expected_screenshots(result, events, session_dir_path)
|
||||
|
||||
# ── 9. Supprimer raw_keys incomplets (chars fusionnés depuis key_combos) ──
|
||||
# Quand le texte contient des caractères venant de key_combos convertis
|
||||
# (ex: @ de AltGr), les raw_keys ne les couvrent pas. Forcer le copier-coller.
|
||||
for action in result:
|
||||
if action.get("type") == "type" and action.get("raw_keys"):
|
||||
recon = _reconstruct_text_from_raw_keys(action["raw_keys"])
|
||||
if len(recon) < len(action.get("text", "")):
|
||||
del action["raw_keys"]
|
||||
logger.debug(
|
||||
"raw_keys supprimés pour '%s' (recon=%d < text=%d)",
|
||||
action["text"][:30], len(recon), len(action["text"]),
|
||||
)
|
||||
|
||||
# Stats visual replay
|
||||
visual_clicks = sum(
|
||||
1 for a in result
|
||||
|
||||
Reference in New Issue
Block a user