Selenium WebDriver 中的陳舊元素引用異常:故障排除和解決方案
當先前獲取的WebElement 引用無效時,會發生Selenium WebDriver 的陳舊元素引用異常由於底層DOM 的變化。當動態更新或刪除元素,導致現有引用過時時,就會出現此問題。
異常原因
異常可能發生在以下情況:
範例程式碼與異常詳細資料
提供的程式碼片段在元素識別期間遇到異常,因為對話方塊開啟時 DOM發生變化並關閉:
WebElement textElement = driver.findElement(By.name("createForm:dateInput_input"));
錯誤跟踪顯示以下消息:
org.openqa.selenium.StaleElementReferenceException: stale element reference: element is not attached to the page document
解決方案:刷新WebElement 參考
要解決問題,您需要在任何可能使其無效的DOM 更改後刷新WebElement 引用。常用的解決方案包括:
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\"]')");
其他提示
以上是如何解決 Selenium WebDriver 中的陳舊元素引用異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!