陳舊元素引用:揭示原因並尋找解決方案
在Selenium 中,遇到“陳舊元素引用”異常可能會令人沮喪,因為它表明被引用的元素不再附加到頁面文件。當 DOM 發生重大變更(例如動態載入或頁面導覽)時,通常會發生此錯誤。
要解決此問題,確定觸發異常的確切程式碼行至關重要。在提供的程式碼中,導致錯誤的行似乎是:
driver.findElement(By.xpath(String.format(BenefitStatLi, i))).click();
此行嘗試按一下基於格式化XPath 字串的元素。但是,執行點擊時底層元素可能已經被移除或修改,導致陳舊元素引用異常。
這個問題的根本原因是程式碼執行時DOM不穩定。為了解決這個問題,可以考慮實作一種重試機制,等待元素再次可用後再點擊它。以下是此類重試的範例:
try {
// Attempt to click on the element
driver.findElement(By.xpath(String.format(BenefitStatLi, i))).click();
} catch (org.openqa.selenium.StaleElementReferenceException ex) {
// Element is not yet available, so wait and try again
Thread.sleep(200); // Replace with appropriate wait time
driver.findElement(By.xpath(String.format(BenefitStatLi, i))).click();
}
透過在重試點擊之前引入等待時間,程式碼為 DOM 提供了足夠的時間來穩定並確保元素在繼續之前存在且可點擊。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3