web自动化学习-三大等待处理

实际应用中多会遇到出现元素定位不到,不能点击等情况;此时可按如下几种问题原因进行排查:元素定位信息错误、元素还没加载出来不可见、元素在iframe中。 其中元素未加载完成不可见时,可以尝试使用等待进行处理,具体如下:

关于selenium中的三大等待

1、sleep 强制等待

import time
time.sleep(3)

一般用来辅助

2、隐性等待

自定义超时时间,n秒

# 设置等待超时时间为30S
driver.implicitly_wait(30)

每个会话只调用一次 找元素、命令执行完成

3、显性等待(主要引用)

等待元素直到可见或者不可见

等待

WebDriverWait类

from selenium.webdriver.support.wait import WebDriverWait
# WebDriverWait(driver,超时时间,查看周期=0.5)
WebDriverWait(driver,超时时间,查看周期=0.5).until(条件)
WebDriverWait(driver,超时时间,查看周期=0.5).until_not(条件)
条件

expected_condition

4、总结

这三类等待不会冲突,各自独立,可以结合使用 实际使用中大多采取sleep 强制等待+显性等待的方式,即可覆盖大部分需求

经验分享 程序员 微信小程序 职场和发展