selenium-三種等待方式

weixin_30639719發表於2020-04-05

一、強制等待

強制等待就是前一步執行完成後必須等待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

轉載於:https://www.cnblogs.com/duyaya/p/10970559.html

相關文章