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

元素等待

目标

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)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值