使用selenium/appium过程中元素等待的几种方法

本文从三方面对selenium/appium使用过程中元素等待的方法进行介绍

一、强制等待/线程等待

二、隐式等待

三、显式等待

1、强制等待/线程等待

用法:

sleep(x)/Thread.sleep(x)

解释:
在脚本执行到某一步骤时设置时间,在该页面固定等待。
sleep()方法参数以秒为单位。

2、隐式等待(implicitlywait)

用法:

driver.implicitly_wait(10)

解释:
隐式等待作用范围是Webdriver对象实例的整个生命周期(包含页面全部元素),如果超过设置的时长(上方语句wait()中跟着10s),元素还没有被加载,则抛出NoSuchElementException异常。

3、显式等待(WebDriverWait )

解释:
显式等待可以自定义等待的条件,用于等待某个元素出现再进行一系列操作的等待方式,每隔一段时间检测一次当前页面元素是否存在,超时则抛出异常
详细用法:

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

driver:浏览器驱动
timeout:最长等待时间,以秒为单位
poll_frequency:检测的间隔时长,默认为0.5S
ignored_exceptions:等待超时后的异常信息,超时则抛出NoSuchElementException异常
常用的ExpectedConditions条件:
(1)页面元素在页面中存在:presenceOfElementLocated(by xx)
(2)页面元素在页面上可点击:elementToBeClickable(by xx)
(3)在页面元素中是否包含特定的文本:textToBePresentInElement(by xx)
(4)页面元素处于被选中状态:elementToBeSelected(WebElement element)
(5)页面元素值:textToBePresentInElementValue(By xx, java.lang.String text)
利用ExpectedConditions条件的用法:
(1)配合until使用
解释:
调用该方法提供的驱动程序作为一个参数,直到返回值为True
应用用法:

WebDriverWait():是 webdirver 提供的方法。在设置时间内,默认每0.5s隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常。
WebDriverWait(driver,10).until(lambda x:x.find_element_by_id("xxx").is_displayed())

(2)配合until_not使用

解释:
调用该方法提供的驱动程序作为一个参数,直到返回值为False

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值