「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python で Selenium WebDriver の実行を効率的に一時停止するにはどうすればよいですか?

Python で Selenium WebDriver の実行を効率的に一時停止するにはどうすればよいですか?

2024 年 12 月 26 日に公開
ブラウズ:230

How to Efficiently Pause Selenium WebDriver Execution in Python?

Selenium WebDriver の待機ステートメントと条件ステートメント

質問: Python で Selenium WebDriver の実行をミリ秒間一時停止するにはどうすればよいですか?

答え:

その間time.sleep() 関数は、指定した秒数の間実行を一時停止するために使用できますが、Selenium WebDriver オートメーションでは通常推奨されません。

Selenium の WebDriverWait を使用する

代わりに、Selenium は WebDriverWait クラスを提供します。要素の状態を検証するために予期される条件と組み合わせて使用​​します。一般的に予期される条件は次のとおりです:

  1. 見つかった要素の存在: DOM に要素が存在するかどうかを確認します。
  2. 見つかった要素の可視性: 要素が表示され、高さと幅が 0 より大きいかどうかを確認します。
  3. 要素が表示されます。 Clickable: 要素が表示されているか、有効になっているか、対話可能かどうかを確認します。

例:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10) # Timeout after 10 seconds

# Wait until an element is clickable
element = wait.until(EC.element_to_be_clickable((By.ID, "some_button")))
element.click()

このメソッドは、不必要な待機を回避し、続行する前に要素の望ましい状態をチェックしてテストの効率を向上させるため、time.sleep() よりも推奨されます。

参考資料:

詳細については、次を参照してください:

  • WebDriverWait が期待どおりに動作しない: https://stackoverflow.com/questions/37372143/webdriverwait-not-working-as-expected
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3