软件测试-移动端测试-元素定位-元素等待-笔记

文章介绍了在WebDriver中如何使用隐式和显式等待来定位未立即出现的页面元素,以避免由于网络、服务器或电脑配置问题导致的错误。隐式等待是对所有元素设定统一的超时时间,而显式等待更灵活,可针对特定元素设置不同的超时和检查频率。
摘要由CSDN通过智能技术生成

元素等待

目标

1.能够使用隐式等待来定位元素

2.能够使用显式等待来定位元素

应用场景

可能由于一些原因,我们想找的元素并没有立刻出来,此时如果直接定位可能会报错,比如以下原因:

1.由于网络速度原因

2.服务器处理请求原因

3.电脑配置原因

概念

WebDriver定位页面元素是如果没有找到,会在指定时间内一直等待的过程

元素等待一共分为两种类型

1.显式等待

2.隐式等待

隐式等待

应用场景

针对所有定位元素的超时时间设置为同一个值的时候

概念

等待元素加载指定的时长,超出时长抛出NoSuchElementException异常

步骤

1.在获取driver对象后,使用driver调用implicitly_wait方法即可示例

示例

在5秒钟内,在《设置》程序中的”返回“按钮,如果找到则点击。如果找不到则观察对应错误信息。

代码

from selenium.webdriver.support.wait import WebDriverWait
#-----
#启动应用参数
#-----
driver.implicitly_wait(5)
search_button=driver.find_element_by_xpath("//*[contains(@content-desc,'收起')]")
search_button.click()

方法参数解释

#参数:
#timeout:超时的时长,单位:秒
implicitly_wait(timeout)

显式等待

应用场景

针对所有定位元素的超时时间设置为不同的值的时候

概念

等待元素加载指定的时长,超出时长抛出TimeoutException异常

步骤

1.导包

2.创建WebDriverWait对象

3.调用WebDriverWait对象的until方法

示例

在5秒钟内,每1秒在《设置》程序中的”返回“按钮,如果找到则点击。如果找不到则观察对应错误信息。

代码

from selenium.webdriver.support.wait import WebDriverWait
#-----
#启动应用参数
#-----
#创建WebDriverWait对象
wait=WebDriverWait(driver,5,poll_frequency=1)
#获取元素并设置超时时间和频率
search_button=wait.until(lambdax:x.find_element_by_xpath("//*[contains(@content-desc,'收起')]"))
#点击搜索按钮
search_button.click()

方法参数解释

#参数:
#timeout:超时的时长,单位:秒
implicitly_wait(timeout)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值