Selenium WebDriver のミリ秒制御による自動化の強化
Selenium WebDriver を使用する場合、次の方法で自動化のフローを明示的に制御する必要がある場合があります。特定の期間実行を一時停止します。時間ライブラリは time.sleep() を介して遅延に対する簡単な解決策を提供しますが、欠点を理解し、別のアプローチを検討することが重要です。
時間精度
時間秒単位での一時停止が可能ですが、ミリ秒を管理する柔軟性がありません。ただし、浮動小数点数を渡すことで、より詳細な制御を実現できます。
import time time.sleep(0.25) # Pause for 250 milliseconds
time.sleep() の欠点
time.sleep() はそう見えるかもしれませんが、単純な解決策のように、いくつかの課題があります。
WebDriverWait による効果的な一時停止
これらの制限を克服するには、次のようにします。 Selenium は、expected_conditions と組み合わせて WebDriverWait を提供します。これらのメソッドを使用すると、スクリプトの実行を続行する前に満たす必要がある条件 (要素の存在、可視性、クリック可能性など) を定義できます:
要素の存在:
from selenium.webdriver.support.expected_conditions import presence_of_element_located element = WebDriverWait(driver, 10).until( presence_of_element_located((By.ID, "element_id")) )
の可視性要素:
from selenium.webdriver.support.expected_conditions import visibility_of_element_located element = WebDriverWait(driver, 10).until( visibility_of_element_located((By.ID, "element_id")) )
要素のクリック可能性:
from selenium.webdriver.support.expected_conditions import element_to_be_clickable element = WebDriverWait(driver, 10).until( element_to_be_clickable((By.ID, "element_id")) )
結論
expected_conditions での WebDriverWait の使用自動化スクリプトの実行フローを正確に制御できます。 Web 要素の動作に合わせた条件を指定することで、不必要な遅延を排除し、テストの効率と安定性を向上させることができます。
以上がSelenium WebDriver Automation でミリ秒精度の制御を実現し、`time.sleep()` の落とし穴を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。