ホームページ >Java >&#&チュートリアル >Selenium テストで StaleElementReferenceException を効果的に処理するにはどうすればよいですか?

Selenium テストで StaleElementReferenceException を効果的に処理するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-14 05:54:10709ブラウズ

How Can I Effectively Handle StaleElementReferenceException in Selenium Tests?

Selenium での StaleElementReferenceException への対処

Selenium テストでは、恐ろしい StaleElementReferenceException が頻繁に発生します。これは、DOM 操作によって要素が一時的にアクセス不能になり、テストが失敗する場合に発生します。テストの安定性を高め、この例外を回避するための戦略をいくつか示します。

要素の操作を再試行する

ループ内で要素との操作を複数回試行すると、問題を軽減できます。次の Java コードは、このアプローチを示しています。

public boolean retryingFindClick(By by) {
    boolean result = false;
    int attempts = 0;
    while(attempts < 2) {
        try {
            driver.findElement(by).click();
            result = true;
            break;
        } catch(StaleElementException e) {
        }
        attempts++;
    }
    return result;
}

古い要素の例外を無視する

場合によっては、StaleElementReferenceException を安全に無視できます。たとえば、テスト中に要素が頻繁に変更されることが予想される場合、例外のキャッチと無視を繰り返す必要がある場合があります。

要素の選択をリファクタリング

要素がテストの選択ロジックは堅牢で信頼性があります。要素を見つけるには、一意で安定した識別子の使用を検討してください。さらに、要素を定期的に更新することで、古い要素参照に依存しないようにします:

WebElement element = driver.findElement(By.id("my-element"));
driver.navigate().refresh();
element = driver.findElement(By.id("my-element"));

以上がSelenium テストで StaleElementReferenceException を効果的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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