飙血推荐
  • HTML教程
  • MySQL教程
  • JavaScript基础教程
  • php入门教程
  • JavaScript正则表达式运用
  • Excel函数教程
  • AngularJS教程
  • UEditor使用文档
  • ThinkPHP5.0教程

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

时间:2021-12-12  作者:liuyuelinfighting  

目录
  • 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特有的,入下所示:

wait_activity(self, activity, timeout, interval=1)

# 返回的True 或 False :

说明:

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

Agrs参数:

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

调用方式:域名_activity(‘.域名’,5,2)

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

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

调用方式:域名_activity(".Settings$DisplaySettingsActivity", 10 , 2 )

4、综合练习

"""
1.学习目标
    熟悉等待activity出现的方法
2.操作步骤
    2.1 获取当前页面的activity
        域名ent_activity
    2.2 等待activity出现
        域名_activity(activity,最大等待时间,interval=1)
        参数说明:
            activity:需等待的目标 activity (相当于启动名,就填写启动名)
            timeout:最大超时时间,单位是s
            interval:循环查询时间
3.需求
    操作设置app,实现上面方法的使用。
"""

# 1.导入appium
import time

from appium import webdriver

# 2.添加启动参数
desired_caps = {
    "platformName": "Android",  # 系统名称
    "platformVersion": "7.1.2",  # 系统版本
    "deviceName": "127.0.0.1:21503",  # 设备名称
    "appPackage": "域名ings",  # APP包名
    "appActivity": ".Settings"  # APP启动名
}

# 3.启动APP
driver = 域名te("http://127.0.0.1:4723/wd/hub", desired_caps)

# 4.操作APP
# 4.1 设置app点击显示按钮
view = 域名_element_by_android_uiautomator(\'new UiSelector().text("显示")\')
域名k()

# 4.2 获取显示页面的activity
# activity = 域名ent_activity
# print(activity)
# 注意:
# 这步能够获取到显示页面的activity,
# 证明显示页面的activity已经出现了。
# 在这里我们就先获取到打印出来查看一下。
# 也方便我们下一步.wait_activity()方法的使用。
# 在实际的代码中我们可以注释掉,不执行。


# 4.3 等待显示页面activity出现
域名_activity(".Settings$DisplaySettingsActivity", 10)

# 4.4 点击显示页面的壁纸按钮
域名_element_by_android_uiautomator(\'new UiSelector().text("显示大小")\').click()

# 5.关闭APP
域名p(5)
域名()

标签:编程
湘ICP备14001474号-3  投诉建议:234161800@qq.com   部分内容来源于网络,如有侵权,请联系删除。