Heim >Java >javaLernprogramm >Wie löse ich die Ausnahme aufgrund veralteter Elementreferenzen in Selenium WebDriver?
Ausnahme wegen veralteter Elementreferenz in Selenium WebDriver: Fehlerbehebung und Lösung
Die Ausnahme wegen veralteter Elementreferenz in Selenium WebDriver tritt auf, wenn eine zuvor erhaltene WebElement-Referenz ungültig wird aufgrund von Änderungen im zugrunde liegenden DOM. Dieses Problem tritt auf, wenn Elemente dynamisch aktualisiert oder entfernt werden, wodurch die vorhandenen Referenzen obsolet werden.
Ursachen der Ausnahme
Die Ausnahme kann auftreten, wenn:
Beispielcode und Ausnahmedetails
Im bereitgestellten Codeausschnitt tritt die Ausnahme während der Elementerkennung auf, da sich das DOM ändert, wenn ein Dialogfeld geöffnet wird und schließt:
WebElement textElement = driver.findElement(By.name("createForm:dateInput_input"));
Die Fehlerverfolgung zeigt die folgende Meldung an:
org.openqa.selenium.StaleElementReferenceException: stale element reference: element is not attached to the page document
Lösung: Aktualisieren Sie die WebElement-Referenz
Um das Problem zu beheben , müssen Sie die WebElement-Referenz nach allen DOM-Änderungen aktualisieren, die sie ungültig machen könnten. Zu den häufig verwendeten Lösungen gehören:
WebDriverWait wait = new WebDriverWait(driver, 10); wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("createForm:dateInput_input")));
WebElement textElement = (WebElement) ((JavascriptExecutor) driver) .executeScript("return document.querySelector('input[name=\"createForm:dateInput_input\"]')");
Zusätzliche Tipps
Das obige ist der detaillierte Inhalt vonWie löse ich die Ausnahme aufgrund veralteter Elementreferenzen in Selenium WebDriver?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!