Heim  >  Artikel  >  Java  >  Warum erhalte ich die Fehlermeldung „Veraltete Elementreferenz“ und wie kann ich sie beheben?

Warum erhalte ich die Fehlermeldung „Veraltete Elementreferenz“ und wie kann ich sie beheben?

DDD
DDDOriginal
2024-11-04 22:12:02182Durchsuche

Why Do I Get

Veraltete Elementreferenz: Grund und Lösung

Der Fehler „Veraltete Elementreferenz“ tritt auf, wenn ein Element im DOM nicht mehr verfügbar ist. typischerweise, weil es entfernt oder neu erstellt wurde. Im bereitgestellten Code tritt der Fehler auf, weil das vom BenefitStatusLi-Xpath referenzierte Element nicht mehr gültig ist.

Die HTML-Struktur zeigt, dass der BenefitStatus-Link in einem

  • verschachtelt ist. Element, das dynamisch geladen wird. Der Code durchläuft die Liste der Navigationslinks und sucht nach dem BenefitStatus-Text. Wenn jedoch versucht wird, mit dem berechneten XPath auf das Element zu klicken, wurde das Element wahrscheinlich durch einen neuen BenefitStatus-Link mit einem anderen XPath ersetzt.

    Um dieses Problem zu beheben, verwenden Sie eine explizite Wartezeit, um sicherzustellen, dass das Element ist beladen und stabil. Behandeln Sie außerdem die Ausnahme wegen veralteter Elementreferenzen, indem Sie erneut versuchen, das Element zu finden:

    <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>

    Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung „Veraltete Elementreferenz“ und wie kann ich sie beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

  • Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn