Python_Selenium的等待操作

  在跑自动化脚本时,有时候因为网络或者其他因素的影响会导致元素还没加载出来然后报not find element错误,所以这时候就需要注意添加等待

selenium的等待分为3种:

1、固定等待

2、智能等待

3、显示等待

 

1、固定等待:线程停止
time.sleep(2)


2、隐式等待(智能等待):对网页所有元素都进行等待最大时间10s,但是只要元素加载出来就不会一直等10秒
driver.implicitly_wait(8)

对整个网页有效,一般都放在最前面,相当于全局变量一样


 3、显示等待:检查指定的元素有没有加载完成
inputtext = driver.find_element_by_name('wd')
res = WebDriverWait(inputtext,10,0.5).until(lambda x:inputtext)

假如隐式等待和显示等待同时都有,那么取大的那个

 

# 等待
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
import time
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
driver.maximize_window()
# 1、固定等待:线程停止
time.sleep(2)
# 2、隐式等待(智能等待):对网页所有元素都进行等待最大时间10s
driver.implicitly_wait(8) # 对整个网页有效
# 3、显示等待:检查指定的元素有没有加载完成
# 【注意】要先导WebDriverWait包
inputtext = driver.find_element_by_name('wd')
res = WebDriverWait(inputtext,10,0.5).until(lambda x:inputtext)
print(res)
# 假如隐式等待和显示等待同时都有,那么取大的那个
driver.quit()

 

  

 

所以在做自动化的时候一定要充分考虑到元素的加载问题。

posted @ 2020-03-11 22:07  熊猫可可Z  阅读(339)  评论(0)    收藏  举报