当前位置: 首页 > news >正文

【UI自动化测试】6_Appium基础API _App基础操作

文章目录

  • 一、应用跳转、获取包名界面名
  • 二、 关闭app和驱动对象
    • 2.1 driver.close_app()关闭应用
    • 2.2 driver.quit()关闭驱动对象
  • 三、安装和卸载以及是否安装app
  • 四、将应用置于后台
  • 五、热启动和冷启动

一、应用跳转、获取包名界面名

需求:打开《设置》应用程序,等待三秒后跳转到《通讯录》应用程序,并输出当前的包名和界面名

# ①导包importtimefromappiumimportwebdriver# ②配置启动参数desired_caps={}# 手机参数desired_caps['platformName']='Android'desired_caps['platformVersion']='5.1'desired_caps['deviceName']='1'# 应用参数desired_caps['appPackage']='com.android.settings'desired_caps['appActivity']='com.android.settings.Settings'# ③ 创建APP驱动对象driver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)# ④ 业务操作time.sleep(3)# 1、跳转到通讯录driver.start_activity('com.android.contacts','.activities.PeopleActivity')# 2、等待2s获取《通讯录》包名和界面名time.sleep(2)# 输出当前程序的包名print(driver.current_package)# 输出当前程序的界面名print(driver.current_activity)time.sleep(5)# ⑤关闭APPdriver.quit()

结果 :

com.android.contacts .activities.PeopleActivity

二、 关闭app和驱动对象

需求:打开《设置》,使用 driver.close_app() 方法关闭,再尝试使用 driver.quit()方法,最后打印当前程序的包名,观察区别。

2.1 driver.close_app()关闭应用

把《设置》打开,过了3秒又关闭了,现在在安卓手机的桌面。——>之后打印安卓桌面应用

fromappiumimportwebdriverimporttime desired_caps=dict()# 手机参数desired_caps['platformName']='Android'desired_caps['platformVersion']='5.1'desired_caps['deviceName']='192.168.56.101:5555'# 应用参数desired_caps['appPackage']='com.android.settings'desired_caps['appActivity']='.Settings'# 获取driverdriver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)# 等待三秒time.sleep(3)# 关闭应用driver.close_app()# 打印包名print(driver.current_package)

结果:

com.android.launcher3# 安卓手机内部的启动器

2.2 driver.quit()关闭驱动对象

fromappiumimportwebdriverimporttime desired_caps=dict()# 手机参数desired_caps['platformName']='Android'desired_caps['platformVersion']='5.1'desired_caps['deviceName']='192.168.56.101:5555'# 应用参数desired_caps['appPackage']='com.android.settings'desired_caps['appActivity']='.Settings'# 获取driverdriver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)# 等待三秒time.sleep(3)# 退出driverdriver.quit()# 打印包名print(driver.current_package)

结果:报错。driver相当于管家一样。把管家辞退了,没人干活当然报错。

三、安装和卸载以及是否安装app

需求关闭设置应用,然后如果《qq》已经安装,则卸载《qq》,如果没有则安装。

# ①导包importtimefromappiumimportwebdriver# ②配置启动参数desired_caps={}# 手机参数desired_caps['platformName']='Android'desired_caps['platformVersion']='5.1'desired_caps['deviceName']='1'# 应用参数desired_caps['appPackage']='com.android.settings'desired_caps['appActivity']='com.android.settings.Settings'# ③ 创建APP驱动对象driver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)# ④ 业务操作# 1、关闭当前打开的app(设置关闭)driver.close_app()time.sleep(3)# 2、判断手机是否安装qq参数为包名;如果安装,就要卸载ifdriver.is_app_installed("com.tencent.mobileqq"):driver.remove_app("com.tencent.mobileqq")# 3、如果没有,则安装.(本地安装包的完整路径名)else:driver.install_app(r"C:\Users\ggk\Desktop\QQ.apk")time.sleep(5)# ⑤关闭APPdriver.quit()

四、将应用置于后台

需求:打开《设置》应用,进入后台 5 秒,再回到前台

importtimefromappiumimportwebdriver desired_caps=dict()# 手机参数desired_caps['platformName']='Android'desired_caps['platformVersion']='5.1'desired_caps['deviceName']='192.168.56.101:5555'# 应用参数desired_caps['appPackage']='com.android.settings'desired_caps['appActivity']='.Settings'# 获取driverdriver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)print("---- 准备进入后台 ----")# 进入后台5秒,再回到前台driver.background_app(5)print("---- 已经回到前台 ----")time.sleep(5)driver.quit()

五、热启动和冷启动

1、热启动:表示进入后台回到前台。

2、冷启动:关机再开这种切断电源的行为可以叫做 ”冷启动“

http://www.jsqmd.com/news/422167/

相关文章:

  • 大数据领域数据工程的关键流程详解
  • 捷克技术大学提出RNS:让AI“看图说话“更准确的新方法
  • 【回溯】BISHI83 迷宫问题
  • 康考迪亚大学研究团队发明了会“不确定“的AI医生
  • 百度架构师亲授:大规模推理的ONNX模型优化全流程(从转换到部署)
  • 每日课后作业
  • 260207
  • 彼得林奇的“家庭股票“在跨代财富传承中的税务规划
  • 基于springboot高校不同专业毕业生就业率统计系统
  • 第20天:模型调优与Pipeline——交叉验证与参数网格搜索 - 2305
  • 每日作业
  • Arrays类
  • 第21天:图计算入门——GraphX与图论基础 - 2305
  • 第22天:GraphX核心抽象——属性图的构建与操作 - 2305
  • Material Design 3 动态布局:自适应界面开发全攻略
  • 第23天:图算法(一)——PageRank与社交网络分析 - 2305
  • 提示工程进度管理总失控?架构师教你「以终为始」计划法,目标更清晰
  • 第24天:图算法(二)——连通分量与三角形计数 - 2305
  • 第25天:Pregel API——自定义图迭代算法 - 2305
  • 第16天:回归算法——线性回归与决策树回归 - 2305
  • OxyPlot小结
  • 第17天:分类算法——逻辑回归与随机森林分类 - 2305
  • 第18天:聚类算法——KMeans与高斯混合模型 - 2305
  • 当 3GPP 拒绝“魔法”:解析 6G 物理层在算力墙与 CSI 开销下的极限内卷
  • 登陆身份认证漏洞补充(login)
  • 孤岛惊魂3设置
  • 品牌词的密度 和 站点要有活人感
  • Docker 新手崩了!镜像删不掉、版本不一致、构建总失败?一篇讲透全流程操作
  • 随机生成canvas参数!
  • P1640 [SCOI2010] 连续攻击游戏 题解