Pourquoi mon WebDriver lance-t-il une exception ElementNotInteractable ?
Susan Sarandon
Libérer: 2024-12-07 11:17:13
original
154 Les gens l'ont consulté
ElementNotInteractableException : l'élément n'est pas accessible par le clavier
Comprendre l'erreur
Cette erreur se produit lorsque WebDriver ne parvient pas à interagir avec un élément en utilisant le clavier. Cela peut être dû au fait que l'élément est masqué, masqué ou non focalisable.
Raisons de l'erreur
L'élément est masqué : Soit temporairement masqué par un autre élément, soit masqué de façon permanente.
Superposition permanente présent : Un élément de superposition bloque l'accès à l'élément souhaité.
Attributs empêchant l'interaction : Des attributs comme class="ng-hide" ou style="display: none" désactivent l'interaction .
Les tentatives de clic sur des éléments tels que
ou
: Envoyer les clics à balises à la place.
Solutions
Superposition temporaire : Utilisez WebDriverWait et ExpectedConditions pour attendre que l'élément devienne visible/ cliquable.
Superposition permanente : Utilisez executeScript() de JavascriptExecutor pour réinitialiser style="display: none" en style="display: block".
Attributs empêchant l'interaction : Utilisez executeScript() de JavascriptExecutor pour modifier les attributs et permettre l'interaction.
Pour ce problème spécifique (Facebook Inscription)
En raison des éléments React Native dans la page de connexion Facebook, une stratégie de localisation dynamique est requise :
driver.findElement(By.xpath("//input[@name='firstname' and contains(@class,'inputtext')]")).sendKeys("testing it ");
Copier après la connexion
Mise à jour avec moz:webdriverClick
La fonctionnalité Firefox moz:webdriverClick permet de désactiver l'interactivité conforme à WebDriver. chèques :
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability("moz:webdriverClick", false);
WebDriver driver = new FirefoxDriver(dc);
Copier après la connexion
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn