Selenium WebDriver / Java - Simuler le mouvement humain comme le curseur
Je souhaite automatiser une tâche simple dans Facebook Ads Manager. Cette tâche consiste à configurer une campagne et à télécharger certaines annonces. Cela peut prendre 30 minutes à un humain. Cependant, ils font la même chose à chaque fois. Souvent avec des erreurs. C'est quelque chose qui devrait être automatisé. Fait sans émotion humaine ni erreurs.
Facebook est très sensible et je ne veux pas qu'il m'interdise pour les mauvaises raisons. J'ai donc besoin de me sentir humain. Je peux prendre mon temps entre les clics. Cependant, le mouvement du curseur lui-même doit être humain. Je n'ai besoin que de simuler un véritable clic humain à des fins éthiques.
Disons que j'obtiens un élément vers lequel je souhaite déplacer mon curseur:
WebDriver driver;
// Set file path of chrome driver
System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");
// Create object
ChromeDriver driver = new ChromeDriver(options);
// Go to URL
driver.get("FACEBOOK URL");
// Get element
driver.findElement(By.xpath("//span[contains(text(), 'Setup Campaign')]");
Quelle est la meilleure façon de déplacer mon curseur vers cet élément comme le ferait un vrai humain?
Un vrai humain déplacerait d'abord la souris. Pas simplement cliquer sur l'élément
Ils déplaceraient lentement la souris / le curseur. Cela peut prendre entre 500 et 1000 millisecondes. Certainement pas instantanément.
Ils déplaceraient la souris / le curseur de manière courbe. Pas seulement en ligne droite à 100%. Peut-être, de façon aléatoire? Donc, certains éléments du caractère aléatoire peuvent être nécessaires?
Je suis assez nouveau sur Selenium, donc toute contribution serait grandement appréciée.
J'écris mon code en Java :)
Réponses
WebDriver n'utilise pas d'entrée du système d'exploitation; il communique directement avec le navigateur via le protocole http. Si vous souhaitez simuler la communication comme une «vraie» souris, vous devez utiliser une solution d'automatisation qui utilise des cadres basés sur le système d'exploitation. Dans le cas de Windows, vous pouvez utiliser par exemple:
- https://github.com/FlaUI/FlaUI (lis https://github.com/FlaUI/FlaUI/wiki/FAQ pour savoir comment configurer Chrome pour exposer les contrôles Web pour FlaUI)
- https://github.com/microsoft/WinAppDriver