問題タブ [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.

0 投票する
1 に答える
147 参照

python - 古い要素の例外を回避するためにクリックする前に鮮度をチェックする Selenium 関数

jquery を使用するサイトからデータをスクレイピングしていますが、try/except の間にスリープを導入することで修正した Stale Element 例外が発生することがあります。

しかし、私はそれをより堅牢にしたかったので、ドキュメントを読んだとき: https://selenium-python.readthedocs.io/waits.html#explicit-waits staleness_of」メソッド。

しかし、上記のステートメントは、私が探しているものとは反対に、要素が古くなるのを待っているようです。つまり、要素が古くなくなるまで待ってから続行する方法はありますか?

テストコード: sleep() を置き換えようとしている

0 投票する
1 に答える
68 参照

python - 古い要素の参照を防ぎ、Selenium で WebElement 自体を更新するにはどうすればよいですか?

私はPythonとSeleniumを扱う完全な初心者で、1週間前に始めたばかりなので、コードの混乱を許してください。この Web サイトのタグ名を持つ要素からすべての 'structure_id' および 'd' 情報を抽出し、それぞれを個別の svg ファイルに保存しようとしています。これは私が問題を抱えているコードのスニペットです:

これは最初のページでは問題なく機能しますが、106 ページすべてのパスを抽出する必要があり、'F' を 1 回押した後 (次のページに移動します)、行で古い要素参照を取得しますstructure = path.get_attribute('structure_id')。最初は、パスの読み込みに時間がかかったため、while ループが発生したと思っていましたが、2 ページ目までに、終わりのない古い要素の参照でスタックします。

明示的な待機またはページの更新も機能しませんでしたdriver.find_element_by_class_name。WebElement がまったく更新されていないと思われます (次のページに移動した後にページを更新すると、抽出したファイルは最初のページと同じになりました。とにかく5ページで古い要素の参照を取得しました)。これを解決するにはどうすればよいですか?どんな助けでも大歓迎です!