25、显示等待

发布时间:2022-06-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了25、显示等待脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

1、应用场景

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

2、概念

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

3、步骤

  • 导包
  • 创建WebDriverWait对象
  • 调用WebDriverWaIT对象的until方法

4、方法参数解释

# 参数
# 	driver:驱动对象
#	timeout:超时的市场,单位:秒
#	poll_frequency:检测间隔时间,单位为0.5秒
# 返回值
#	WebDriverWait对象

WebDriverWait(driver, timeout, poll_frequency=0.5)

# 参数
#	method:lambda查找元素表达式
# 返回值
#	定位到的元素,如果没有定位到会抛出TimeoutException异常
wait.until(method)

5、作用

  • 在设置了显式等待之后,可以等待一个超时时间,在这个超时时间之内进行查询,默认每0.5秒找一次
  • 0.5秒的频率是可以设置的
  • 一旦找到这个元素,直接进行后续操作
  • 如果没有找到,报错,TimeOutException

6、示例

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

7、核心代码

From appium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
import time

desired_caps = dict()
desired_caps['platformName'] = 'AndROId'
desired_caps['platformVersion'] = '7'
desired_caps['deviceName'] = '192.168.101.55:5555'

# 手机参数
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)


PRint('---开始准备点击了')

# 拆分的写法
# wait = WebDriverWait(driver, 5, 1)
# back_button = wait.until(lambda x: x.find_element_by_xpath('//*[@content-desc="收起"]'))
# back_button.click()

# 简便的写法
WebDriverWait(driver, 5, 1).until(lambda x: x.find_element_by_xpath('//*[@content-desc="收起"]')).click()

# 使用显式等待,在20秒的时间内,每3秒钟找一次,id为xx的元素
WebDriverWait(driver, 20, 3).until(lambda x: x.find_element_by_id('xx'))

print('---点完了')

脚本宝典总结

以上是脚本宝典为你收集整理的25、显示等待全部内容,希望文章能够帮你解决25、显示等待所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。