本章所罗列的方法主要针对应用的操做,如应用的安装、卸载、关闭、启动等。android
把前面的启动代码放在这里,后面只展现不一样的部分。web
# coding:utf-8 from appium import webdriver
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)
当咱们从一个应用跳转到另一个应用的时候,想输出其包名、界面名或者想在报告中展示对应信息, 咱们就能够调用这个属性来进行获取。app
# 打印当前包名 print(driver.current_package) # 打印当前界面名 print(driver.current_activity)
安装应用:ui
driver.Install_app(app_path):安装应用到设备,须要apk包的路径。spa
卸载应用:code
driver.remove_app(app_id):从设备中删除一个应用。orm
检查应用是否安装:对象
driver.is_app_installed(app_id):检查应用是否已经安装。须要传入应用包的名字。返回结果为True或False。blog
案例:支付宝
咱们如今就来安装一个应用宝吧,首先用电脑下载一个应用包的apk,放在F盘下。
而后咱们将apk拖进模拟器中安装,进入应用包,查看应用包的名字。
这些完成就能够开始咱们的实例演示了。
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()
若是应用宝已经安装,就会卸载应用宝。若是应用宝没有安装,就会安装应用宝。
你们只要运行成功,就能够看到效果了。
咱们常常遇到须要从一个应用跳转到另一个应用 ,就像咱们使用饿了吗的时候,须要跳转到支付宝来进行支付同样。
咱们想要实现这种功能,就要使用下面的方法了。
driver.start_activity(appPackage, appActivity):分别传入要打开的应用的包名和界面名。
实例:
打开《设置》,等待三秒后跳转到《通信录》。
sleep(3) #跳转到短信 driver.start_activity('com.android.contacts', '.activities.PeopleActivity') sleep(5) #退出driver1 driver.quit()
有的时候咱们须要关闭某个应用程序后,再打开新的应用。那么如何关闭应用程序呢?
咱们到目前为止,已经学过一种关闭应用的方法了,那就是driver.quit()。可是这种关闭呢,是关闭驱动对象,同时关闭全部关联的应用,关闭后咱们是没法使用脚本操做应用的。
若是咱们只想关闭当前操做的应用,不关闭驱动对象,咱们就可使用driver.close_app()方法。
driver.reset()
重置应用。至关于“恢复出厂默认值”的效果。这个方法不须要传入参数。
置于后台相信玩过手机的都知道,就是将程序不显示在手机界面上,可是却能够正常运行,最好的例子就是咱们经常使用的QQ了。
方法:
driver.background_app(seconds):app放置到后台必定时间后再回到前台,模拟热启动。这个方法须要传入一个时间,表示在后台停留多少秒。
热启动:表示进入后台回到前台。关机再开这种切断电源的行为能够叫作 ”冷启动。
实例:
打开《设置》,进入后台五秒,再回到前台。
time.sleep(3) driver.background_app(5) time.sleep(3) # 退出driver driver.quit()