02. Appium-基础Api
2024年10月28日大约 4 分钟
02. Appium-基础Api
app基础操作
应用跳转
获取包名和界面名
关闭app和驱动对 象
安装卸载和判断是否安装
置于后台
1. 应用跳转
说明
- driver.start_activity(appPackage, appActivity)
- appPackage:要打开的程序的包名
- appActivity:要打开的程序的界面名
- driver.start_activity(appPackage, appActivity)
演练
打开《设置》应用程序,等待三秒后跳转到《短信》应用程序
from time import sleep from appium import webdriver # 定义字典变量 desired_caps = {} # 字典追加启动参数 desired_caps["platformName"] = "Android" desired_caps["platformVersion"] = "7.1.1" desired_caps["deviceName"] = "127.0.0.1:52001" desired_caps["appPackage"] = "com.android.settings" desired_caps["appActivity"] = ".Settings" # 设置中文 desired_caps["unicodeKeyboard"] = True desired_caps["resetKeyboard"] = True # 获取driver driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps) """ 需求: 1、启动设置后,暂停3秒,打开短信应用 2、打印当前默认应用包名启动名 """ sleep(3) # 启动短信 driver.start_activity("com.android.mms", ".ui.ConversationList") driver.quit()
2. 获取包名和界面名
属性说明
- 获取包名driver.current_package
- 获取界面名driver.current_activity
演练
打开《设置》应用程序,等待三秒获取界面名和包名
from time import sleep from appium import webdriver # 定义字典变量 desired_caps = {} # 字典追加启动参数 desired_caps["platformName"] = "Android" desired_caps["platformVersion"] = "7.1.1" desired_caps["deviceName"] = "127.0.0.1:52001" desired_caps["appPackage"] = "com.android.settings" desired_caps["appActivity"] = ".Settings" # 设置中文 desired_caps["unicodeKeyboard"] = True desired_caps["resetKeyboard"] = True # 获取driver driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps) """ 需求: 1、启动设置后,暂停3秒,打开短信应用 2、打印当前默认应用包名启动名 """ sleep(3) # 启动短信 driver.start_activity("com.android.mms", ".ui.ConversationList") # 打印包名和启动名 print("当前所在应用包名:", driver.current_package) print("当前所在应用启动名:", driver.current_activity)
3. 关闭app和驱动对象
当需要关闭某个应用程序后,再打开新的应用如何关闭当前应用程序
方法说明
- driver.close_app()
- 关闭当前操作的app,不会关闭驱动对象
- driver.quit()
- 关闭驱动
- driver.close_app()
注意:关闭app后还能继续操作手机其它应用;关闭驱动,可以理解为锁屏,不能在进行任何操作。
演练
打开《设置》,使用 close_app() 方法关闭,再尝试使用 quit() 方法,最后打印当前程序的包名,观察区别
import os.path from time import sleep from appium import webdriver # 定义字典变量 desired_caps = {} # 字典追加启动参数 desired_caps["platformName"] = "Android" desired_caps["platformVersion"] = "7.1.1" desired_caps["deviceName"] = "127.0.0.1:52001" desired_caps["appPackage"] = "com.android.settings" desired_caps["appActivity"] = ".Settings" # 设置中文 desired_caps["unicodeKeyboard"] = True desired_caps["resetKeyboard"] = True # 获取driver driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps) # 启动设置界面 print("启动设置界面...") driver.start_activity("com.android.settings", ".Settings") sleep(3) print("设置应用置于后台3秒钟...") # 关闭设置 driver.close_app() print("获取关闭后的app报名") print("关闭设置app,后获取包名:", driver.current_package) sleep(3) print("退出driver驱动") # driver.quit()
4. 安装卸载和判断是否安装
场景:部分应用管理平台在安装了app后,会自动进行检测,如 已安装了则会显示【启动】
方法说明
- driver.install_app(app_path)
- 安装app,app_path为安装文件完整路径名
- driver.remove_app(app_id)
- 卸载app,app_id为app包名
- driver.is_app_installed(app_id)
- 判断app是否安装,app_id为app包名
- driver.install_app(app_path)
演练
如果《淘宝》已经安装,则卸载《淘宝》,如果没有则安装
import os.path from time import sleep from appium import webdriver # 定义字典变量 desired_caps = {} # 字典追加启动参数 desired_caps["platformName"] = "Android" desired_caps["platformVersion"] = "7.1.1" desired_caps["deviceName"] = "127.0.0.1:52001" desired_caps["appPackage"] = "com.android.settings" desired_caps["appActivity"] = ".Settings" # 设置中文 desired_caps["unicodeKeyboard"] = True desired_caps["resetKeyboard"] = True # 获取driver driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps) """ 需求: 1、判断百年奥莱是否安装,如果安装进行卸载,否则安装 2、启动设置界面 3、置于后台3秒钟 4、关闭设置界面 5、关闭app驱动 """ # 判断百年奥莱是否安装 if driver.is_app_installed("com.yunmall.lc"): print("百年奥莱app已存在正在卸载...") # 卸载 driver.remove_app("com.yunmall.lc") print("卸载百年奥莱app成功!") else: print("百年奥莱不存在,正在安装...") # 安装 driver.install_app(os.path.dirname(__file__) + "/apks/" + "bainianaolaitemai_115.apk") print("安装百年奥莱app成功!") sleep(3) # 启动设置界面 print("启动设置界面...") driver.start_activity("com.android.settings", ".Settings") sleep(3) print("设置应用置于后台3秒钟...") # 置于后台3秒 (3秒后会自动切到前台) driver.background_app(3) print("关闭设置app...") # 关闭设置 driver.close_app() print("获取关闭后的app报名") print("关闭设置app,后获取包名:", driver.current_package) sleep(3) print("退出driver驱动") driver.quit()
5. 置于后台
登陆后置于后台一段时间后,这 类安全系数高的APP再重新打开使用 时会要求重新登陆!
方法说明
- driver.background_app(seconds)
- 置于后台,seconds表示秒数
- driver.background_app(seconds)
演练
打开《设置》应用,进入后台 5 秒,再回到前台
6. 小节
跳转应用:driver.start_activity(appPackage, appActivity)
获取包名:driver.current_package
获取界面名:driver.current_activity
关闭APP:driver.close_app()
关闭驱动:driver.quit()
安装app:driver.install_app(app_path)
卸载app:driver.remove_app(app_id)
判断app是否安装:driver.is_app_installed(app_id)
置于后台:background_app(seconds)