首頁  >  文章  >  Java  >  為什麼會出現“過時元素引用”錯誤以及如何修復它們?

為什麼會出現“過時元素引用”錯誤以及如何修復它們?

DDD
DDD原創
2024-11-04 22:12:02182瀏覽

Why Do I Get

過時元素參考:原因和解決方案

當DOM 中的元素不再可用時,就會出現“過時元素引用”錯誤,通常是由於它被刪除或重新建立。在提供的程式碼中,發生錯誤的原因是 BenefitStatusLi Xpath 引用的元素不再有效。

HTML 結構顯示 BenefitStatus 連結嵌套在

  • 中。動態載入的元素。程式碼循環訪問導航連結列表並蒐索 BenefitStatus 文字。但是,當它嘗試使用計算的 Xpath 單擊該元素時,該元素可能已被具有不同 Xpath 的新 BenefitStatus 連結取代。

    要解決此問題,請使用明確等待來確保該元素已載入且穩定。此外,透過重試定位元素來處理過時元素引用異常:

    <code class="java">WebDriverWait wait = new WebDriverWait(driver, 10);
    
    try {
        WebElement benefitStatLi = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(String.format(BenefitStatLi, i))));
        benefitStatLi.click();
    } catch (StaleElementReferenceException ex) {
        WebElement benefitStatLi = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(String.format(BenefitStatLi, i))));
        benefitStatLi.click();
    }</code>
  • 以上是為什麼會出現“過時元素引用”錯誤以及如何修復它們?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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