Introduction :
Dans Selenium WebDriver, l'ElementNotInteractableException est couramment rencontrée lorsque vous essayez d'interagir avec un élément qui n'est pas dans un état propice à l’interaction. Cette erreur peut se produire pour plusieurs raisons, notamment :
Raisons de l'exception ElementNotInteractable :
Solutions pour ElementNotInteractableException :
1. Utilisation des attentes explicites :
2. Gestion des superpositions permanentes :
Problème spécifique dans le code fourni :
Le code donné pour la connexion à Gmail rencontre une exception ElementNotInteractableException lorsque en essayant de saisir le mot de passe. Cela est probablement dû au fait que le champ du mot de passe n'est pas entièrement rendu lorsque le code tente d'envoyer des clés.
Solution pour le code fourni :
Implémentez une attente explicite pour le champ de mot de passe pour qu'il devienne cliquable avant d'envoyer les clés. Voici le code corrigé :
System.setProperty("webdriver.gecko.driver", "C:\Users\Ruchi\workspace2\SeleniumTest\jar\geckodriver-v0.17.0-win64\geckodriver.exe"); WebDriver driver = new FirefoxDriver(); driver.manage().window().maximize(); String url = "https://accounts.google.com/signin"; driver.get(url); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); WebElement email_phone = driver.findElement(By.xpath("//input[@id='identifierId']")); email_phone.sendKeys("[email protected]"); driver.findElement(By.id("identifierNext")).click(); WebElement password = driver.findElement(By.xpath("//input[@name='password']")); WebDriverWait wait = new WebDriverWait(driver, 20); wait.until(ExpectedConditions.elementToBeClickable(password)); // Explicit wait password.sendKeys("test1"); driver.findElement(By.id("passwordNext")).click();
Ce code introduit une attente explicite, permettant au champ de mot de passe de s'afficher correctement dans le DOM HTML avant de tenter d'interagir avec lui, résolvant ainsi efficacement le problème ElementNotInteractableException.
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!