selenium的三种等待方式:强制等待、显示等待、隐式等待

touch_the_top / 2023-08-29 / 原文

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('http://www.cnlogs.com')
#wd是webdriver对象,10是最长等待时间,每0.5秒去查询对应的元素。until后面跟的等待具体条件,EC是判断条件,检查元素是否存在于页面的 DOM 上。
WebDriverWait(wd,10,0.5).until(EC.presence_of_element_located((By.ID, "s-top-loginbtn")))
...

3.隐式等待

设置一个最长等待时间,在规定时间内网页加载完成,则执行下一步,否则一直等到时间结束,然后执行下一步。

示例:

from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('http://www.cnlogs.com')
driver.implicitly_wait(10)
...