1. 程式人生 > 其它 >selenium 三種等待方式

selenium 三種等待方式

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()