python+selenium基礎篇,三種等待方式,顯示、隱式、強制等待


1、顯示等待:

from selenium import webdriver
from time import sleep
from selenium.webdriver.support.ui import WebDriverWait   #顯示等待針對元素操作
#EC預期條件類(里面主要有一些判斷元素是否出現,彈出框是否出現,以及是否出現新窗口等。)
#EC用的比較多的就是和顯示等待一起使用,通過顯示等待的方法來循環判斷是否元素是否出現
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By#用於元素定位

dr=webdriver.Firefox()
dr.get("https://www.baidu.com/")
dr.maximize_window()
sleep(2)
dr.find_element_by_css_selector('#kw').send_keys(u'測試')
sleep(2)
element=WebDriverWait(dr,5,0.5).until(EC.presence_of_element_located((By.ID,'su')))
#顯示等待,判斷搜索按鈕是否存在,每隔0.5秒刷新一次,5秒內沒找到報異常
element.click()
sleep(2)
dr.quit()

2、隱式等待

from time import sleep,ctime
from selenium.common.exceptions import NoSuchElementException
from selenium import webdriver

dr=webdriver.Firefox()
dr.get("https://www.baidu.com/")
dr.maximize_window()
dr.implicitly_wait(5)#設置隱式等待,等待時間5秒,隱式等待全局生效
try:
    print(ctime())
    dr.find_element_by_css_selector("#kw").send_keys("python")
    dr.find_element_by_css_selector("#su1").click()
except NoSuchElementException as xx:
    print(xx)
finally:
    print(ctime())

sleep(2)
dr.quit()

3、強制等待

from selenium import webdriver
from time import sleep

dr=webdriver.Firefox()#打開瀏覽器
dr.get("https://www.baidu.com")#打開百度
dr.maximize_window()#瀏覽器最大化
sleep(3)#強制等待3秒
dr.quit()#關閉瀏覽器

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM