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 サイトの他の関連記事を参照してください。