Appium(七):Appium API(一) 应用操作

摘要:
#打印当前包名print#打印当前界面名print1.2安装和卸载以及检查应用是否安装安装应用:driver.Install_app:安装应用到设备,需要apk包的路径。检查应用是否安装:driver.is_app_installed:检查应用是否已经安装。ifdriver.is_app_installed:driver.remove_appelse:driver.install_app#退出driver1driver.quit()如果应用宝已经安装,就会卸载应用宝。
1. 应用操作

本章所罗列的方法主要针对应用的操作,如应用的安装、卸载、关闭、启动等。

把前面的启动代码放在这里,后面只展示不同的部分。

#coding:utf-8
from appium importwebdriver
from time import sleep
#初始化 desired_caps ={} #使用哪种移动平台 desired_caps['platformName'] = 'Android' #Android版本 desired_caps['platformVersion'] = '5.1.1' #使用adb devices -l 查询,当有多台设备时,需要声明 desired_caps['deviceName'] = '127.0.0.1:62001' #包名 desired_caps['appPackage'] = 'com.android.settings'#界面名 desired_caps['appActivity'] = '.Settings' #启动服务 driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

1.1 获取应用的包名和界面名

当我们从一个应用跳转到另外一个应用的时候,想输出其包名、界面名或者想在报告中展现对应信息, 我们就可以调用这个属性来进行获取。

#打印当前包名
print(driver.current_package)
#打印当前界面名
print(driver.current_activity)

Appium(七):Appium API(一) 应用操作第1张

1.2 安装和卸载以及检查应用是否安装

安装应用:

driver.Install_app(app_path):安装应用到设备,需要apk包的路径。

卸载应用:

driver.remove_app(app_id):从设备中删除一个应用。

检查应用是否安装:

driver.is_app_installed(app_id):检查应用是否已经安装。需要传入应用包的名字。返回结果为True或False。

案例:

我们现在就来安装一个应用宝吧,首先用电脑下载一个应用包的apk,放在F盘下。

Appium(七):Appium API(一) 应用操作第2张

然后我们将apk拖进模拟器中安装,进入应用包,查看应用包的名字。

Appium(七):Appium API(一) 应用操作第3张

这些完成就可以开始我们的实例演示了。

if driver.is_app_installed("com.tencent.android.qqdownloader"):
    driver.remove_app("com.tencent.android.qqdownloader")
else:
    driver.install_app("E:yingyongbao_7422130.apk")

#退出driver1
driver.quit()

如果应用宝已经安装,就会卸载应用宝。如果应用宝没有安装,就会安装应用宝。

大家只要运行成功,就可以看到效果了。

1.3 在脚本内启动其他应用

我们经常遇到需要从一个应用跳转到另外一个应用 ,就像我们使用饿了吗的时候,需要跳转到支付宝来进行支付一样。

我们想要实现这种功能,就要使用下面的方法了。

driver.start_activity(appPackage, appActivity):分别传入要打开的应用的包名和界面名。

实例:

打开《设置》,等待三秒后跳转到《通讯录》。

sleep(3)

#跳转到短信
driver.start_activity('com.android.contacts', '.activities.PeopleActivity')

sleep(5)

#退出driver1
driver.quit()

1.4 关闭应用

有的时候我们需要关闭某个应用程序后,再打开新的应用。那么如何关闭应用程序呢?

我们到目前为止,已经学过一种关闭应用的方法了,那就是driver.quit()。但是这种关闭呢,是关闭驱动对象,同时关闭所有关联的应用,关闭后我们是无法使用脚本操作应用的。

如果我们只想关闭当前操作的应用,不关闭驱动对象,我们就可以使用driver.close_app()方法。

1.5 重置应用

driver.reset()

重置应用。相当于“恢复出厂默认值”的效果。这个方法不需要传入参数。

1.6 将应用置于后台

置于后台相信玩过手机的都知道,就是将程序不显示在手机界面上,但是却可以正常运行,最好的例子就是我们常用的QQ了。

方法:

driver.background_app(seconds):app放置到后台一定时间后再回到前台,模拟热启动。这个方法需要传入一个时间,表示在后台停留多少秒。

热启动:表示进入后台回到前台。关机再开这种切断电源的行为可以叫做 ”冷启动。

实例:

打开《设置》,进入后台五秒,再回到前台。

time.sleep(3)
driver.background_app(5)
time.sleep(3)
#退出driver
driver.quit()

免责声明:文章转载自《Appium(七):Appium API(一) 应用操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇PHP连接FTP服务的简单实现在Delphi中动态地使用SQL查询语句 Adoquery sql 参数 冒号下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

软件安装方法

软件安装方法 1. RPM包安装(红帽公司开发了rpm包安装方式,实际上是把源代码进行了编译及封装后,生成了rpm包)centos、redhat等 2. YUM源安装 3.源代码安装(从GNU社区下载的源代码软件包 4.Deb包安装(Ubantu、Debian、Kali) 5.带有安装脚本的安装 6.绿色软件 1 RPM安装(安装时要在光盘目录)1. ll...

sqlserver2012数据库软件包及安装方法

官网下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=29066 1. 根据微软的下载提示,64位的Windows7操作系统,只需下载列表的CHSx64SQLFULL_x64_CHS_Core.box、CHSx64SQLFULL_x64_CHS_Intall.exe和CHSx64SQL...

appium简明教程(11)——使用resource id定位(仅支持安卓4.3以上系统)

上一节乙醇带大家了解了appium的定位策略。实际上appium的控件定位方式是完全遵守webdriver的mobile扩展协议的。 这一节将分享一下如何使用resource id来定位android策略。 什么是resource id,这个不属于本文的范畴,大家可以点这里了解。 我们可以有两种方式来使用resource id进行定位: 使用findEl...

iOS 崩溃

一、什么情况下会产生崩溃日志? 两种主要情况会产生崩溃日志: 1.应用违反操作系统规则。 2.应用中有Bug。 违反iOS规则包括在启动、恢复、挂起、退出时watchdog超时、用户强制退出和低内存终止。 Watchdog 超时机制 从iOS 4.x开始,退出应用时,应用不会立即终止,而是退到后台。但是,如果你的应用响应不够快,操作系统有可能会终止你的应用...

屏蔽微信内置底部前进后退按钮(很迫切的需求)

在使用window.location.href进行页面跳转或者react内部项目使用 this.props.history.push进行页面跳转时,做好的h5页面放在微信里,底部会出选前进后退的按钮,如下图: 废话不多说,解决问题: 第一种情况:如果只是页面之间跳转,使用window.location.replace 代替window.location.h...

uniapp app头部渐变

在pages.json中配置:{ "pages": [ //pages数组中第一项表示应用启动页, { "path": "pages/login/login", "style": { "navigationBarTitleText": "登录",...