一、強制等待
強制等待就是前一步執行完成後必須等待5秒才能執行下一步,不靈活,影響程式碼執行的整體速度。
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.get('https://www.baidu.com')
time.sleep(5) #強制等待5秒
driver.find_element_by_id('kw').send_keys('軟體測試')
driver.find_element_by_id('su').click()
二、隱性等待
隱性等待是在規定時間內等待瀏覽器載入完成,對整個driver起作用,所以只需要設定一次即可。當頁面有彈出框時,隱性等待對彈出框的等待不起作用,它只針對頁面重新整理起作用。若最長等待時間完後為載入成功,直接丟擲異常。
from selenium import webdriver
driver=webdriver.Chrome()
driver.get('https://www.baidu.com')
driver.implicitly_wait(5) #最長等待5秒
driver.find_element_by_id('kw').send_keys('軟體測試')
driver.find_element_by_id('su').click()
三、顯性等待
顯性等待是在規定等待時間內,每隔多少秒判斷一次,看是否達到條件。若達到條件,則執行下一步,否則繼續等待,直到超過設定的最長時間,丟擲TimeoutException。
#!usr/bin/env python
#-*- coding:utf-8 -*-
from selenium import webdriver
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
driver=webdriver.Chrome()
driver.get('https://www.baidu.com')
WebDriverWait(driver,10,0.5).until(expected_conditions.alert_is_present()) #在10秒內沒0.5秒判斷一次彈出框是否出現,出現後執行下一步
參考:https://blog.csdn.net/huilan_same/article/details/52544521