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

本文介绍了Selenium自动化测试中常见的三种等待方式:强制等待、隐性等待及显性等待,并详细解释了它们的应用场景及实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实际应用中多会遇到出现元素定位不到,不能点击等情况;此时可按如下几种问题原因进行排查:元素定位信息错误、元素还没加载出来不可见、元素在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

"""
元素存在:
expected_conditions.presence_of_element_located 
元素可见:
expected_conditions.visibility_of_element_located 
元素可点击:
expected_conditions.element_to_be_clickable 
"""
from selenium.webdriver.support import expected_conditions as EC
……
# 显性等待
wait =WebDriverWait(driver,20)
# 元素表达
loc=(By.XPATH,'定位信息')
# 等待 直到等待的元素可见
wait.until(EC.visibility_of_element_located(loc))
# 截图处理
driver.save_screenshot("元素出现后的截图.png")
# 元素操作
driver.find_element(*loc).click()

4、总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值