『与善仁』Appium基础 — 24、等待activity出现
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:循环查询时间 。
调用方式:driver.wait_activity(‘.activity.xxx’,5,2)
3、获取当前页面的activity方法
获取当前页面的activity方法为:current_activity。
调用方式:driver.wait_activity(".Settings$DisplaySettingsActivity", 10 , 2 )
4、综合练习
"""
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.导入appium
import time
from 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.启动APP
driver = 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.关闭APP
time.sleep(5)
driver.quit()
『与善仁』Appium基础 — 24、等待activity出现的更多相关文章
- 『与善仁』Appium基础 — 8、Appium自动化测试框架介绍
目录 1.主流的移动端自动化测试框架 (1)Robotium (2)Macaca (3)Appium 2.自动化测试工具的选择 3.Appium简介 提示:我们前面说的Android环境搭建和adb命 ...
- 『与善仁』Appium基础 — 26、常用手机操作的API说明
目录 1.获取当前手机的时间 2.获取手机屏幕的宽和高 3.获取手机当前网络 4.设置手机网络模式 5.操作手机通知栏 6.综合练习 7.发送键到设备(掌握) 8.手机截图(掌握) 是针对手机一些常用 ...
- 『与善仁』Appium基础 — 5、常用ADB命令(二)
目录 9.查看手机运行日志 (1)Android 日志 (2)按级别过滤日志 (3)按 tag 和级别过滤日志 (4)日志格式 (5)清空日志 10.获取APP的包名和启动名 方式一: 方式二: 11 ...
- 『与善仁』Appium基础 — 9、补充:C/S架构和B/S架构说明
目录 1.C/S架构和B/S架构概念 2.C/S结构与B/S架构的区别 3.C/S架构和B/S架构优点和缺点 (1)B/S模式的优点和缺点: (2)C/S模式的优点和缺点: 1.C/S架构和B/S架构 ...
- 『与善仁』Appium基础 — 10、Appium基本原理
目录 1.Appium自动化测试架构 2.Appium架构图 3.Session说明 4.Desired Capabilities说明 5.Appium Server说明 6.Appium Clien ...
- 『与善仁』Appium基础 — 12、Appium的安装详解
目录 (一)Appium server安装 方式一:(桌面方式:推荐) 1.Appium Desktop下载 2.Appium Desktop安装 3.Appium Desktop使用 方式二:(No ...
- 『与善仁』Appium基础 — 14、Appium测试环境搭建
目录 1.Appium测试环境搭建整体思路 (1)Android测试环境搭建 (2)Appium测试环境搭建 (3)测试脚本语言的环境搭建 2.Appium在Android端和IOS端的工作流程 (1 ...
- 『与善仁』Appium基础 — 15、使用Appium的第一个Demo
我们使用Python语言作为测试脚本的编写语言. 执行脚本前提: Android模拟器或者手机是开机状态. 使用确保电脑和Android设备进行了链接. 也就是使用ADB命令adb connect链接 ...
- 『与善仁』Appium基础 — 16、APPium基础操作API
目录 1.前置代码 2.安装和卸载APP 3.判断APP是否已安装 4.关闭APP软件和关闭驱动对象 5.发送文件到手机和获取手机中的文件 6.获取当前屏幕内元素结构(重点) 7.脚本内启动其他APP ...
随机推荐
- Part 29 AngularJS intellisense in visual studio
In the previous videos if you have noticed as we were typing the angular code in Script.js file we w ...
- Spring Cloud Gateway实战之四:内置predicate小结
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 菜鸡的Java笔记 第三十五 接口定义增强
接口定义增强 在java从一开始到现在接口之中的核心组成部分:抽象方法与全局常量,但是随着技术的不断发展,用户在使用过程之中发现了有一些问题 如果说现在有一个接口经过了长年 ...
- Financial Tsunami
COP 3502: PROGRAMMING ASSIGNMENT 4 DUE DATE: MARCH 16, 4:00 PM Name your class as PA4 and turn in .j ...
- 「后端小伙伴来学前端了」Vuex进阶操作,让你的代码更加高效(简称如何学会偷懒 【手动狗头】)
学妹手机里的美照 前言 前一篇写了Vuex基本使用,用起来还稍稍有些繁琐,代码有很多 冗余的地方,这篇就带着大家用更简单的方式来使用Vuex(其实就是怎么更好的偷懒,用更少的代码来完之前的事情) 进入 ...
- 【CSS】水平居中和垂直居中
水平居中和垂直居中 2019-11-12 15:35:37 by冲冲 1.水平居中 (1)父级元素是行内元素,子级元素是行内元素,子级元素水平居中 ① 设置父级元素为块级元素 display:bl ...
- 贪心/构造/DP 杂题选做Ⅲ
颓!颓!颓!(bushi 前传: 贪心/构造/DP 杂题选做 贪心/构造/DP 杂题选做Ⅱ 51. CF758E Broken Tree 讲个笑话,这道题是 11.3 模拟赛的 T2,模拟赛里那道题的 ...
- 【比较基因组】McScan jcvi比较两个基因组共线性细节记录
目录 软件的安装 基因组的准备 一些细节 建议和示例 软件的安装 Python版McScan(jcvi工具包):https://github.com/tanghaibao/jcvi 以前只有pytho ...
- linux中的颜色
echo -e "\033[30m 黑色字 \033[0m" echo -e "\033[31m 红色字 \033[0m" echo -e "\033 ...
- R语言与医学统计图形-【13】ggplot2几何对象之盒形图
ggplot2绘图系统--几何对象之盒形图 参数: geom_boxplot(mapping = , #lower,middle,upper,x,ymax,ymin必须(有默认) #alpha/col ...