Maison > interface Web > js tutoriel > Pourquoi mon WebDriver lance-t-il une exception ElementNotInteractable ?

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é

Why is My WebDriver Throwing an ElementNotInteractableException?

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal