首頁  >  文章  >  Java  >  如何處理 Selenium 中的「過時元素引用」異常?

如何處理 Selenium 中的「過時元素引用」異常?

Barbara Streisand
Barbara Streisand原創
2024-11-04 17:16:01549瀏覽

How to Handle

陳舊元素引用:揭示原因並尋找解決方案

在Selenium 中,遇到「陳舊元素引用」異常可能會令人引用沮喪,因為它表明被引用的元素不再附加到頁面文件。當 DOM 發生重大變更(例如動態載入或頁面導覽)時,通常會發生此錯誤。

要解決此問題,確定觸發異常的確切程式碼行至關重要。在提供的程式碼中,導致錯誤的行似乎是:

<code class="java">driver.findElement(By.xpath(String.format(BenefitStatLi, i))).click();</code>

此行嘗試點擊基於格式化 XPath 字串的元素。但是,在執行點擊時,底層元素可能已經被刪除或修改,從而導致陳舊元素引用異常。

這個問題的根本原因是程式碼執行時 DOM 不穩定。為了解決這個問題,可以考慮實作一種重試機制,等待元素再次可用後再點擊它。以下是此類重試的範例:

<code class="java">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();
}</code>

透過在重試點擊之前引入等待時間,程式碼為DOM 提供了足夠的時間來穩定並確保元素在繼續之前存在且可單擊。

以上是如何處理 Selenium 中的「過時元素引用」異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn