問題タブ [staleelementreferenceexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - リストでも使えますかStaleElementExceptionを取得せずにSeleniumで?
同様の質問がすでに何百万回も聞かれていますが、この問題を解決する正しい方法はまだわかりません.
最初の質問: Selenium で Web 要素のリストを反復処理するのは悪い習慣ですか?
私は Java のリストの大ファンです。通常、関心のあるすべての WebElement を見つけて、それらを反復処理します。しかし、それを行うと、StaleElementException が発生することがよくあります。StaleElementException が何であるかは知っていますが、リストを使用しているときにそれらを防ぐ正しい方法がわかりません。
次のシナリオで皆さんはどうしますか: Web アプリケーションにたくさんのタイルがあり、クリックして結果が正しいかどうかを確認する必要があります。私はこのようなことをしたいと思っていますが、多くの場合、StaleElementException が発生します。
リストを引き続き使用し、古い要素を取得しない方法はありますか? 「By」を使用せずに「古い」WebElement を使用して要素を再検索できますか?
何かのようなもの:
そうでなければ、一意の ID を持っていないため、所有している多数のタイルから 1 つの古い WebElement を見つけるために、コードでどのように記述すればよいでしょうか?