Selenium で「StaleElementReferenceException」エラーを回避する方法
P粉920835423
P粉920835423 2023-08-21 17:47:18
0
2
623
<p>Java で多くの Selenium テストを実装していますが、<code>StaleElementReferenceException</code> が原因でテストが失敗することがあります。 </p> <p>テストをより安定させるための方法をいくつか提案してもらえますか? </p>
P粉920835423
P粉920835423

全員に返信(2)
P粉899950720

私もかつてこの問題に遭遇しましたが、知らないうちにページ上で BackboneJS が実行されており、私がクリックしようとしていた要素がそれによって置き換えられました。私のコードは次のとおりです。

リーリー

これは、もちろん機能的には以下のコードと同じです。

リーリー

時々発生するのは、検索とクリックの間に、JavaScript が checkoutLink 要素を置き換えることです。

リーリー

これにより、リンクをクリックしようとすると StaleElementReferenceException 例外が発生します。 WebDriver に JavaScript の実行が完了するのを待つように指示する信頼できる方法が見つからなかったので、これが最終的に解決する方法でした。

リーリー

このコードは、クリックが成功するかタイムアウトに達するまで、StaleElementReferenceException 例外を無視してリンクのクリックを試行し続けます。このソリューションが気に入っているのは、再試行ロジックを記述する手間が省かれ、WebDriver の組み込み構造のみを使用できるためです。

いいねを押す +0
P粉343141633

これは、ページ上で行われる DOM 操作によって要素が一時的にアクセス不能になった場合に発生する可能性があります。このような状況に対処するには、最終的に例外がスローされるまで、ループ内で要素へのアクセスを複数回試行します。

darrelgranger.blogspot.com のこの優れたソリューションを使用してみてください:

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート