Maison > interface Web > js tutoriel > Pourquoi est-ce que j'obtiens \'org.openqa.selenium.ElementNotInteractableException\' lors de l'envoi de texte vers un champ de saisie Facebook ?

Pourquoi est-ce que j'obtiens \'org.openqa.selenium.ElementNotInteractableException\' lors de l'envoi de texte vers un champ de saisie Facebook ?

Mary-Kate Olsen
Libérer: 2024-11-27 18:37:12
original
220 Les gens l'ont consulté

Why Am I Getting

Selenium WebDriver : "org.openqa.selenium.ElementNotInteractableException : l'élément n'est pas accessible par le clavier" lors de l'envoi de texte au champ Prénom dans Facebook

Cette erreur se produit lors de la tentative d'envoi de touches vers un champ de saisie qui ne peut pas être interactif avec le clavier. Dans ce cas précis, l'erreur se produit lors de l'envoi de texte dans le champ "Prénom" sur Facebook.

Raison

L'élément "L'élément n'est pas accessible au clavier " L'erreur peut survenir pour diverses raisons, notamment :

  • L'élément est masqué ou masqué par un autre élément.
  • L'élément est désactivé ou ne reçoit pas le focus.
  • Le navigateur bloque peut-être la saisie au clavier de l'élément pour des raisons de sécurité.

Il existe plusieurs approches pour résoudre ce problème problème :

Utilisez WebDriverWait et ExpectedConditions :

Si l'élément est temporairement masqué ou masqué, utilisez WebDriverWait avec ExpectedConditions pour attendre que l'élément soit visible et cliquable.

Utiliser executeScript() :

Si l'élément est masqué ou obscurci de manière permanente, utilisez la méthode executeScript() de l'interface JavascriptExecutor pour accéder et manipuler l'élément.

Modifier le style attributs :

Si l'élément est masqué en raison d'attributs CSS tels que "display: none", utilisez executeScript() pour modifier le style et créer le élément visible.

Désactiver les vérifications d'interactivité de WebDriver (temporaire) :

La fonctionnalité Firefox moz:webdriverClick peut être définie sur false pour désactiver temporairement les vérifications d'interactivité de WebDriver. Cela peut être nécessaire pour les tests existants.

Cas spécifique : inscription Facebook

Dans l'extrait de code fourni, l'exception se produit car le champ "Prénom" a un identifiant dynamique qui change à chaque chargement de page. Pour résoudre ce problème, utilisez une stratégie de localisation dynamique qui recherche l'élément en fonction de ses attributs plutôt que de son ID.

Extrait de code mis à jour :

WebDriver driver = new FirefoxDriver();
driver.get("https://www.facebook.com");
driver.findElement(By.xpath("//input[@name='firstname' and contains(@class,'inputtext')]")).sendKeys("testing it ");
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