selenium的三种等待方式:强制等待、显示等待、隐式等待
1.强制等待
不管页面是否加载成功,强制等待,之后继续操作。
示例:
import time from selenium import webdriver driver = webdriver.Chrome() driver.get('https://www.cnblogs.com/') time.sleep(5) #强制等待5秒,之后继续下面的操作
2.显示等待
设置等待条件,如果条件满足就继续下面的操作;如果不满足则一直等待,直至超出设定时间,抛出异常。
示例:
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Chrome() driver.get('https://www.cnblogs.com/') #10是最长等待时间,每0.5秒去查询对应的元素。until后面跟的等待具体条件,EC是判断条件。 WebDriverWait(driver,10,0.5).until(EC.presence_of_element_located((By.ID, "sidenav_category")))
3.隐式等待
设置一个最长等待时间,在规定时间内网页加载完成,则执行下一步,否则一直等到时间结束,然后执行下一步。
示例:
from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get('https://www.cnblogs.com/') driver.implicitly_wait(10) #隐式等待