0

私はそのStaleElementReferenceException問題に苦しんでいます。私はこのトピックについてかなりの数の議論を見てきましたが、私が直面している問題の解決策を見つけることができませんでした。

テストでは、Webページのフッターにあるすべてのリンクを取得し、リンクをクリックしてページのタイトルを確認することにより、リンクがアクティブかどうかを確認します。

まず、すべてのリンクを見つけて配列リストに保存します。リンク名をデータベースから取得した値と比較します。次に、リンクごとに、リンクをクリックしてページタイトルを確認します。次に、「driver.navigate.back()」を使用して、元のページに戻り、残りのリンクを続行します。

ただし、コントロールがページに戻ると、StaleElementReferenceExceptionが発生します。

誰かが私にこれから抜け出す方法を提案できますか?

ありがとう、アヌジ

4

3 に答える 3

2

フッターにすべてのリンクを保存すると、その時点での要素をそのまま取得できます。別のページに移動すると、それらの特定の要素は存在しなくなります。後ろに戻ると、これらの要素が新たに作成されています。

要素は識別子によって同じですが、それらは異なるインスタンスであるため、配列内の古い要素は「古い」ものです。

リンク識別子のみ (リンク要素自体ではなく) を文字列として保存し、ページが読み込まれるたびにそれらを検索することをお勧めします。

于 2013-03-19T21:42:13.050 に答える