为什么需要等待的呢?页面的加载需要一个过程,很多时候,网页加载还没有完全的话,我们就点击是识别到元素,这样就容易导致用例的失败,所以才有了等
1.显示等待
我们可以自己设置条件,等待某个特定的元素出现了,我们在操作。
默认每 500 毫秒调用一次。
from selenium import webdriver
import time
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://mail.qq.com/cgi-bin/loginpage")
try:
# 最多等待10s,等ID 元素出现
WebDriverWait(driver,10).until(EC.presence_of_element_located(By.ID,"填写ID"))
except:
# 如果异常就退出
driver.quit()
2.Implicit Waits(隐式等待)
全局定义一个时间,等待固定的时间之后,在操作,隐式等待定义的全局效果。
from selenium import webdriver
import time
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
#等待10s时间
driver.implicitly_wait(10)
3.直接time等待
有些页面设计的不是很完善,time.sleep(10)有时候也是会用到
from selenium import webdriver
import time
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
#直接的等待时间
driver = webdriver.Chrome()
time.sleep(10)
网友评论