ホームページ >Java >&#&チュートリアル >「Stale Element Reference」エラーが表示されるのはなぜですか? それらを修正するにはどうすればよいですか?

「Stale Element Reference」エラーが表示されるのはなぜですか? それらを修正するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-04 22:12:02284ブラウズ

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>

    以上が「Stale Element Reference」エラーが表示されるのはなぜですか? それらを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

  • 声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。