@JJJJPNNNN

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

selenium driverwait 使い方

seleniumで明示的に待機するためのwaitの使い方が知りたいです

あるサイトから自動でデータダウンロードをしてこようとしています。
処理としては、ログイン後にいくつかページをクリックを経てデータダウンロードを繰り返す様な処理です。
毎回エラーが出たり出なかったりするのですが、
おそらくseleniumのスピードに動作が追いついていないのかな思います。

発生している問題・エラー

Message: stale element reference: element is not attached to the page document

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

Run_Screen = _driver.find_element(By.XPATH, '//*[@class="run-XXX-div"]')
Run_Screen.click()

自分で試したこと

waitを以下の様に入れてみましたが、やはりエラーが出ます。
この書き方ではwait聞いていないのでしょうか??
それとも他に問題がある可能性が思い付かれたら教えていただきたいです。
※下記部分だけを単体で実行するとちゃんとclickできることは確認済みです。一気に行うとerrorになります。

Run_Screen = wait.until(EC.presence_of_all_elements_located((By.XPATH, '//*[@class = "run-XXX-div"]')))
Run_Screen[0].click()
0 likes

1Answer

from selenium.webdriver.support.wait import WebDriverWait
wait = WebDriverWait(_driver, 5)
wait.until(EC.presence_of_all_elements_located)
_driver.find_element(By.XPATH, '//*[@class="run-XXX-div"]').click()

こんな感じで!

0Like

Your answer might help someone💌