selenium 三種等待方式
阿新 • • 發佈:2022-03-08
from selenium import webdriver from time import sleep from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait class Testcase(object): def __init__(self): self.driver = webdriver.Chrome() self.driver.get("http://www.baidu.com") # 固定等待,用在除錯中 def test_sleep(self): self.driver.find_element_by_id("kw").send_keys("selenium") sleep(2) self.driver.find_element_by_id("su").click() sleep(3) self.driver.quit() # 隱式等待 # 設定等待時間 這個時間是全域性變數,如果超過時間沒加載出就會丟擲異常 def test_impplicitly(self): self.driver.implicitly_wait(10) self.driver.find_element_by_id("kw").send_keys("selenium") self.driver.find_element_by_id("su").click() self.driver.quit() # 顯示等待 # WebDriverWait是selenium提供得到顯示等待模組引入路徑 # 設定等待時間 設定這個時間來載入元素,如果超過時間沒加載出就會丟擲異常 def test_wait(self): # 程式每0.5秒檢查,是否滿足:標題包含“百度一下”這個條件,檢查是否滿足條件的最長時間為:10秒,超過10秒仍未滿足條件則丟擲異常wait = WebDriverWait(self.driver, 10, 0.5) wait.until(EC.title_is('百度一下,你就知道')) self.driver.find_element_by_id("kw").send_keys("selenium") self.driver.find_element_by_id("su").click() self.driver.quit() if __name__ == '__main__': case = Testcase() case.test_wait()