Maison >Java >javaDidacticiel >Pourquoi est-ce que j'obtiens des erreurs « Référence d'élément obsolète » et comment puis-je les corriger ?

Pourquoi est-ce que j'obtiens des erreurs « Référence d'élément obsolète » et comment puis-je les corriger ?

DDD
DDDoriginal
2024-11-04 22:12:02284parcourir

Why Do I Get

Référence d'élément obsolète : raison et solution

L'erreur "Référence d'élément obsolète" se produit lorsqu'un élément du DOM n'est plus disponible, généralement en raison de sa suppression ou de sa recréation. Dans le code fourni, l'erreur se produit car l'élément référencé par BenefitStatusLi Xpath n'est plus valide.

La structure HTML montre que le lien BenefitStatus est imbriqué dans un

  • élément chargé dynamiquement. Le code parcourt la liste des liens de navigation et recherche le texte BenefitStatus. Cependant, lorsqu'il tente de cliquer sur l'élément à l'aide du Xpath calculé, l'élément a probablement été remplacé par un nouveau lien BenefitStatus avec un Xpath différent.

    Pour résoudre ce problème, utilisez une attente explicite pour vous assurer que l'élément est chargé et stable. De plus, gérez l’exception de référence d’élément obsolète en réessayant de localiser l’élément :

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

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

  • Déclaration:
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn