美文网首页python学习
python+selenium(4)元素等待

python+selenium(4)元素等待

作者: 考拉十口 | 来源:发表于2022-07-25 23:32 被阅读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,点击上方显示的红色灯泡,点击

导入time工具包,即可使用time

【导入WebDriverWait】

相关文章