PythonのバージョンのSeleniumを使用して要素選択オプションを反復処理しています。ウェブサイト上ではうまく動作しますが、別のエラーでエラーが発生します。Message: stale element reference: element is not attached to the page document
私はもちろんそれを見ましたが、私が見つけた回答はうまくいかなかったのです。私はtime.sleep()
を使用してページが読み込まれるのを待っています。ブラウザにロードされているのがわかります。私はそれをどうすればいいのか分かりません。Selenium:古い要素の参照:要素がPythonのページ文書に添付されていません
は、それがコードにどのように見えるか:それは正常に動作します
options = Select(driver.find_element_by_xpath("my_element's_xpath")).options
for option in options:
option.click()
sleep(5)
最初の実行は、セカンドランは、私はエラーを取得します。ここで
はクロムでの開発ツールで選択要素です: screenshot 私はそれが最初の選択オプションは、その周りに<option>
タグを持っていないと何かをする必要がある場合があります信じていますが、私はDOMからそれを削除するかどうかはわかりません。
前(
from time import sleep
から取られた)sleep(2)
を追加するには十分だったが、選択項目がリロードするページが発生することはありませんが、よろしいですか?その場合、 'options'変数に格納されたDOM要素はもはや利用できなくなります。はい、新しいページには(おそらく)同じ要素がありますが、別の要素になります。 – J0HNああ、ネットワークをチェックして、はい、ページをリロードします。その周りに道がありますか?編集:オプション名を1つの方法で保存してから、この名前を新しいオプションセットに適用すると思いますか? –
はい、実行するたびに、選択(...)を更新する必要があります。オプションのリストよりも有効です。 – J0HN