『与善仁』Appium基础 — 24、等待activity出现

『与善仁』Appium基础 — 24、等待activity出现

目录
  • 1、什么是等待activity出现
  • 2、wait_activity()方法
  • 3、获取当前页面的activity方法
  • 4、综合练习

1、什么是等待activity出现

启动APP的时候,要配置包名和启动名,一个启动名对应一个页面,也就是启动APP然后打开某一个页面。换句话说,在等待这个页面出现,也就是等待activity出现。(activity相当于启动名)

如果不等待页面完全展示,就直接做下一步点击操作经常会报错,于是我们会在启动完成的时候加sleep。(同Web自动化类似)

那么问题来了,这个sleep时间到底设置多少合适呢?

设置长了,就浪费时间,设置短了,就会找不到元素报错了。

这个时候我们可以用wait_activity的语法,等到你想点击的页面activity出现了,再点击,可以有效的节省时间。

(同Selenium中的显示等待和隐式等待相关内容)

2、wait_activity()方法

wait_activity()方法是Android特有的,入下所示:

python
wait_activity(self, activity, timeout, interval=1)# 返回的True 或 False :

说明:

等待指定的activity出现直到超时,interval为扫描间隔1秒,即每隔几秒获取一次当前的activity

Agrs参数

  • activity:需等待的目标 activity (相当于启动名,就填写启动名)
  • timeout:最大超时时间,单位是s 。
  • interval:循环查询时间 。

调用方式:driver.wait_activity(‘.activity.xxx’,5,2)

3、获取当前页面的activity方法

获取当前页面的activity方法为:current_activity

调用方式:driver.wait_activity(".Settings$DisplaySettingsActivity", 10 , 2 )

4、综合练习

python
"""1.学习目标    熟悉等待activity出现的方法2.操作步骤    2.1 获取当前页面的activity        driver.current_activity    2.2 等待activity出现        driver.wait_activity(activity,最大等待时间,interval=1)        参数说明:            activity:需等待的目标 activity (相当于启动名,就填写启动名)            timeout:最大超时时间,单位是s            interval:循环查询时间3.需求    操作设置app,实现上面方法的使用。"""# 1.导入appiumimport timefrom appium import webdriver# 2.添加启动参数desired_caps = {    "platformName": "Android",  # 系统名称    "platformVersion": "7.1.2",  # 系统版本    "deviceName": "127.0.0.1:21503",  # 设备名称    "appPackage": "com.android.settings",  # APP包名    "appActivity": ".Settings"  # APP启动名}# 3.启动APPdriver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)# 4.操作APP# 4.1 设置app点击显示按钮view = driver.find_element_by_android_uiautomator('new UiSelector().text("显示")')view.click()# 4.2 获取显示页面的activity# activity = driver.current_activity# print(activity)# 注意:# 这步能够获取到显示页面的activity,# 证明显示页面的activity已经出现了。# 在这里我们就先获取到打印出来查看一下。# 也方便我们下一步.wait_activity()方法的使用。# 在实际的代码中我们可以注释掉,不执行# 4.3 等待显示页面activity出现driver.wait_activity(".Settings$DisplaySettingsActivity", 10)# 4.4 点击显示页面的壁纸按钮driver.find_element_by_android_uiautomator('new UiSelector().text("显示大小")').click()# 5.关闭APPtime.sleep(5)driver.quit()

__EOF__

  • 本文作者: 繁华似锦Fighting
  • 本文链接: https://www.cnblogs.com/liuyuelinfighting/p/15679151.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
    相关文章
    返回顶部