3 votes

Java Selenium ChromeDriver SendKeys est vraiment lent

J'ai quelques problèmes avec Selenium et Chrome, j'ai besoin d'envoyer via SendKeys une très grande chaîne (>20'000 caractères). Cela démarre très vite mais ensuite cela ne cesse de ralentir jusqu'à ce qu'il arrête d'envoyer les clés à mon corps contenteditable=true auquel je me réfère par xpath. Le Browser ne répond alors plus et je dois le tuer via le gestionnaire de tâches (je suis sous Windows 10).

MISE À JOUR : J'ai également essayé d'envoyer moins de caractères en divisant la chaîne de caractères et en mettant certains endormissements, le problème n'est pas causé par la quantité de caractères que chromedriver doit écrire mais par la quantité de caractères dans une zone de texte...

1voto

Monsingor Points 496

Vous pouvez essayer d'utiliser un autre moyen de saisir des caractères, au moyen de JavaScript.

WebElement element = driver.findElement(By.xpath(yourXpath));
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("arguments[0].innerText=arguments[1];", element, yourLongText);

0voto

Tobias Mayr Points 79

Comme mentionné par Monseigneur, vous devriez utiliser JavaScript. Si vous avez un élément HTML d'entrée, vous pouvez également utiliser ce qui suit :

WebElement element = driver.findElement(By.xpath(yourXpath));
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("arguments[0].value = arguments[1]", element, yourLongText);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X