首页 > Java > java教程 > 为什么会出现'过时元素引用”错误以及如何修复它们?

为什么会出现'过时元素引用”错误以及如何修复它们?

DDD
发布: 2024-11-04 22:12:02
原创
300 人浏览过

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中文网其他相关文章!

    来源:php.cn
    本站声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板