Einführung:
In Selenium WebDriver, Die ElementNotInteractableException tritt häufig auf, wenn versucht wird, mit einem Element zu interagieren sich nicht in einem für die Interaktion geeigneten Zustand befindet. Dieser Fehler kann aus mehreren Gründen auftreten, darunter:
Gründe für ElementNotInteractableException:
Lösungen für ElementNotInteractableException:
1. Explizite Wartezeiten verwenden:
2. Umgang mit permanenten Overlays:
Spezifisches Problem im bereitgestellten Code:
Der angegebene Code für die Gmail-Anmeldung stößt auf eine ElementNotInteractableException, wenn versucht, das Passwort einzugeben. Dies liegt wahrscheinlich daran, dass das Passwortfeld nicht vollständig gerendert wird, wenn der Code versucht, Schlüssel zu senden.
Lösung für den bereitgestellten Code:
Implementieren Sie ein explizites Warten auf die Das Passwortfeld muss vor dem Senden von Schlüsseln anklickbar werden. Hier ist der korrigierte Code:
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();
Dieser Code führt eine explizite Wartezeit ein, die es dem Passwortfeld ermöglicht, ordnungsgemäß im HTML-DOM gerendert zu werden, bevor versucht wird, mit ihm zu interagieren, wodurch das ElementNotInteractableException-Problem effektiv gelöst wird.
Das obige ist der detaillierte Inhalt vonWarum löst Selenium WebDriver eine ElementNotInteractableException aus und wie kann ich sie beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!