Python Selenium自动化测试框架 元素等待机制

本文介绍了Python Selenium自动化测试中元素等待的机制,包括隐式等待和显式等待,强调了WebDriverWait类与expected_conditions模块在等待策略中的应用,并提供了示例代码。通过正确使用这些等待策略,可以提高测试的稳定性和可靠性。

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

Time will tell.

由于可能会突然地资源受限或网络延迟,导致找不到目标元素。这时测试报告会显示测试失败,这里就需要一种延时机制,来使脚本的运行速度与程序的响应速度相匹配, WebDriver 为这种情况提供了隐式等待显式等待两种机制。

1、隐式等待

一旦设置隐式等待时间,就会作用于这个 WebDriver 实例的整个生命周期(对所有的元素查找都生效),设置隐式等待时间后, Webdriver 会在一定时间内持续检测和搜寻 DOM ,以便于查找一个或多个不是立即加载成功并可用的元素。隐式等待的默认时间是 0。 WebDriver 使用implicitly_wait()来设置等待时间,单位秒。超过等待时间还没找到,就报NoSuchElementException异常。

# 设置超时时间为10秒
driver.implicitly_wait(10)

2、显式等待

WebDriver 提供了WebDriverWait类和expected_conditions模块来实现显式等待。相比隐式等待,显示等待更加智能。显示等待就是设置一个前置条件,在等待时间内,每隔一段时间检查一次前置条件是否满足,满足则执行下一步,超时则报TimeoutException异常。

3、WebDriverWait类

WebDriverWait(driver, timeout, poll_frequency=POLL_FREQUENCY, ignored_exceptions=None)

driver:浏览器驱动实例

timeout:等待时间,单位秒

poll_frequency:每隔多长时间检查一次,默认0.5秒

ignored_exceptions:忽略的异常,默认只有NoSuchElementException

until方法 和 until_not方法:
- until(method, message=''):method指要执行的方法(等待时间内每隔一段时间,执行一次),直到返回值为true,超时则报TimeoutException异常,message将传入异常(message参数可不填)
- until_not(method, message=''):直到返回值为false,其他和until相同

4、expected_conditions模块

expected_conditions模块提供了多种定义好的前置条件,需要配合 WebDriverWait 使用。

预期等待条件 简单说明
element_to_be_clickable(locat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值