在Selenium WebDriver 中透過毫秒控制增強自動化
使用Selenium WebDriver 時,您可能需要透過以下方式明確控制自動化流程在特定時間內暫停執行。雖然時間庫透過 time.sleep() 提供了一種簡單的延遲解決方案,但了解其缺點並探索替代方法至關重要。
時間精確度
儘管時間允許以秒為單位的暫停,但缺乏管理毫秒的彈性。但是,您可以傳遞浮點數來實現更精細的控制:
import time time.sleep(0.25) # Pause for 250 milliseconds
time.sleep() 的缺點
雖然 time.sleep()可能看起來像一個簡單的解決方案一樣,它有幾個挑戰:
使用 WebDriverWait 進行有效暫停
要克服這些限制, Selenium 提供 WebDriverWait 與 Expected_conditions 結合使用。這些方法可讓您定義繼續執行腳本之前必須滿足的條件(例如,元素存在、可見性或可點擊性):
元素存在:
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")) )
使用有預期條件的WebDriverWait提供對自動化腳本執行流程的精確控制。透過指定與 Web 元素行為一致的條件,您可以消除不必要的延遲並提高測試的效率和穩定性。
以上是如何在 Selenium WebDriver Automation 中實現毫秒精度控制並避免「time.sleep()」的陷阱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!