python+selenium(4)元素等待
2022-07-25 本文已影响0人
考拉十口
针对寻找页面元素时,页面还没有加载完成的情况,可以通过添加等待时间,确保脚本稳定性。
影响请求的因素:网络速度;电脑配置;服务器处理请求的速度
【强制等待】
比如,time.sleep(3),就代表等待3秒
适用场景:脚本调试;倒计时页面
缺点:脚本运行的性能低
【隐式等待】
设定时间内,检查所有页面元素是否加载完成,如果超过设定的时间还没有加载完成不到抛出异常。
比如,driver.implicitly_wait(5),如果页面元素在5秒内都加载完成,也可以继续往下执行。
print(time.time())
driver.implicitly_wait(5)
print(time.time())
通过implicitly_wait上下两个打印时间戳的代码,可以得到页面实际的加载时间,使用try/except捕获异常。
try:
driver.find_elements_by_id("app")
except Exception as msg:
print(msg)
适用场景:验证页面上加载所有元素需要的时间
【显示等待】
设定时间内,每隔一段时间检查某个元素是否存在,如果超过设定的时间检测不到抛出异常。
WebDriverWait(driver, 10, 1).until(lambda x: x.find_element_by_id("app"))
driver--浏览器
10--最长等待时间
1--间隔时间
until--方法
p.s.
【导入time】
time底部有红色波浪线,鼠标定位到time,点击上方显示的红色灯泡,点击
![](https://img.haomeiwen.com/i5268036/8be3764a620b8af3.png)
![](https://img.haomeiwen.com/i5268036/fa08bfbd603ff7c7.png)
导入time工具包,即可使用time
![](https://img.haomeiwen.com/i5268036/4c68c5c750758ea0.png)
![](https://img.haomeiwen.com/i5268036/f1dd5d0f12c0c191.png)
【导入WebDriverWait】
![](https://img.haomeiwen.com/i5268036/e9c897fc41e5e6d4.png)
![](https://img.haomeiwen.com/i5268036/86c048a74097aac2.png)