管理应用

1. 将当前应用放到后台

执行之后,应用会被放到后台特定时间。比如这里就是5秒,5秒过后,应用会重新回到前台。

driver.background_app(5)

官网示例:

driver.background_app(1)
sleep(2)
el = driver.find_element_by_name('Animation')
assertIsNotNone(el)

2. 检查应用是否已经安装

检查设备目前是否安装了某个应用,这里检查的是知乎APP。

这里需要的参数是该应用的包名,下面就是知乎的包名。该方法会返回True 或者 False 。

driver.is_app_installed('com.zhihu.android')

3. 安装应用

在设备上安装某个应用。参数是该应用APK文件的路径。

driver.install_app('zhihu_521.apk')

其实执行的就是:adb install zhihu_521.apk

官网示例:

assertFalse(driver.is_app_installed('io.selendroid.testapp'))
driver.install_app('/Users/isaac/code/python-client/test/apps/selendroid-test-app.apk')
assertTrue(driver.is_app_installed('io.selendroid.testapp'))

4. 卸载应用

在设备上卸载某个应用。参数是该应用的包名。

driver.remove_app('com.zhihu.android')

其实执行的就是: adb uninstall com.zhihu.android

官网示例:

assertTrue(driver.is_app_installed('com.example.android.apis'))
driver.remove_app('com.example.android.apis')
assertFalse(driver.is_app_installed('com.example.android.apis'))

5. 关闭应用

关闭 desired_caps 定义的应用。

driver.close_app()

6. 启动应用

启动 desired_caps 定义的应用。

driver.launch_app()

官网示例:

el = driver.find_element_by_name('Animation')
assertIsNotNone(el)
driver.close_app();try:driver.find_element_by_name('Animation')
except Exception as e:pass # should not exist

driver.launch_app()
el = driver.find_element_by_name('Animation')
assertIsNotNone(el)

7. 获取应用的字符串

实际操作,发现返回的就是该次会话的 session id 。

driver.app_strings

打印出来,类似下面的结果:

<bound method WebDriver.app_strings of <appium.webdriver.webdriver.WebDriver (session="xxxxxxxxxxxxxxxxxxxxxxxxxxx")>>

8. 重置

driver.reset()

官网示例:

el = driver.find_element_by_name('App')
el.click()driver.reset()
sleep(5)el = driver.find_element_by_name('App')
assertIsNotNone(el)

Activity

1. 获取当前Activity

driver.current_activity

比如下面的程序:

from appium import webdriverdesired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.2.2'
desired_caps['deviceName'] = 'Android Emulator'
desired_caps['appPackage'] = 'com.zhihu.android'
desired_caps['appActivity'] = 'com.zhihu.android.app.ui.activity.MainActivity'driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)b=driver.current_activity
print(b)

运行结果如下:

.app.ui.activity.MainActivity

2. 启动Activity

在当前应用中打开一个Activity ,或者启动一个新应用并打开一个Activity。

这里第一个参数是要启动的Activity的包名,第二个参数是要启动的Activity名。

driver.start_activity('com.example.android.apis', '.Foo')

比如下面的程序:

#coding=utf-8
from appium import webdriverdesired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.2.2'
desired_caps['deviceName'] = 'Android Emulator'
desired_caps['appPackage'] = 'com.zhihu.android'
desired_caps['appActivity'] = 'com.zhihu.android.app.ui.activity.MainActivity'driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)print(driver.current_activity)driver.start_activity('com.android.calculator2', '.Calculator')print(driver.current_activity)

打印结果如下:

.app.ui.activity.MainActivity
.Calculator

可以看到一开始当前Activity还是 知乎的 Activity,启动计算器的Activity之后,当前Activity就变成计算器的Activity。

转载于:https://www.cnblogs.com/miniren/p/7381277.html

Appium Python 六:管理应用和Activity相关推荐

  1. appium的python教程_移动App Appium自动化测试教程Appium+Python 【2018年新】_IT教程网...

    资源名称:移动App Appium自动化测试教程Appium+Python [2018年新] 资源目录: 第一章:App自动化测试概述 1-1 Appium自动化课程简介 1-2 课程大纲 1-3 移 ...

  2. pythonapp自动化_移动App Appium自动化测试教程Appium+Python 【2018年新】

    资源介绍 资源名称:移动App Appium自动化测试教程Appium+Python [2018年新] 资源目录: 第一章:App自动化测试概述 1-1 Appium自动化课程简介 1-2 课程大纲 ...

  3. Appium+python自动化-启动app

    Appium+python自动化-启动app 环境已经搭建好了,接下来就是需要启动APP,如何启动app呢?首先要获取包名,然后获取launcherActivity.获取这两个关键东西的方法很多,这里 ...

  4. appium+python自动化测试教程_Python+Appium实现自动化测试

    一.环境准备 1.脚本语言:Python3.x IDE:安装Pycharm 2.安装Java JDK .Android SDK 3.adb环境,path添加E:\Software\Android_SD ...

  5. python android自动化元素定位_linux下Appium+Python移动应用自动化测试实战---3.手把手教你定位元素编写测试用例...

    linux下Appium+Python移动应用自动化测试实战-3.手把手教你定位元素编写测试用例 前言 有很多童鞋环境搭建好了却没有进行下一步,是因为缺少step by step的资料. 互联网上ap ...

  6. appium+python自动化33-解锁九宫格(TouchAction)

    TouchAction 1.源码可以在这个路径找到:Lib\site-packages\appium\webdriver\common\touch_action.py class TouchActio ...

  7. appium+python 操作APP

    整理一些appium+python操作APP的常用方法 1.检查应用是否已经安装 driver.is_app_installed('package_name') 2.安装APP driver.inst ...

  8. Appium+python自动化8-Appium Python API

    Appium+python自动化8-Appium Python API 前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts contex ...

  9. Appium+Python安卓自动化测试之启动APP和配置获取

    Appium+Python安卓自动化测试之启动APP和配置获取 本文章未讲述appium+python环境部署,环境部署会新开文章 一.手机连接电脑 1.USB连接电脑和手机,手机上点确认连接(最好用 ...

最新文章

  1. 一个用于 Angular 开发的 Chrome 扩展 - Angular Dev Tools
  2. 如何给 mongodb 设置密码
  3. LeetCode之Detect Capital
  4. 基于Windows 7旗舰版搭建WinCE6.0开发环境的过程
  5. mysql8.0 的新特性_MySQL8.0-新特性汇总
  6. 正则语言和正则表达式_探索正则表达式背后的语言学
  7. C/C++ 获取目录下的文件列表信息
  8. 微软拿下美国国防部100亿美元云合同,亚马逊不干了...
  9. Flex App的Size和Link报告
  10. Nodemon包的使用
  11. ssim 算法 java实现_图像质量评价指标之 PSNR 和 SSIM
  12. 没有计算机的一天英语作文带翻译,美好的一天糟糕的一天英语作文带翻译
  13. 题目 1341. 十三号星期五
  14. 电脑有弹窗广告怎么办?真实个人经验分享
  15. 阿里云、腾讯云、七牛、网易云CDN简单对比
  16. 王者服务器修改,王者荣耀
  17. 考研逻辑整理 - 负判断、联言判断和联言推理
  18. JPA学习笔记1——JPA基础
  19. python正则匹配ABAC型词语
  20. 人机工程学产品设计案例_儿童产品设计的那些原则【北京新易设计坊】

热门文章

  1. html制作水晶状态导航栏,HTML5 CSS3水晶风格的页面头部
  2. java批量删除接口怎么定义_教你在Java接口中定义方法
  3. a标签传值到另一个页面_Vue组件传值与通信集合
  4. 脑机接口与量子计算机,关于脑机接口---浅谈人工智能。
  5. RedHat7.0 设置weblogic开机自启动
  6. Linux 利用yum源安装nginx
  7. 结构体实验报告总结_解读!清华、谷歌等10篇强化学习论文总结
  8. easyui datagrid不是相邻的能合并单元格吗_介绍一种划分账龄的方法,要不了半个小时就能完成...
  9. Mysql Too many connections解决方法
  10. matlab程序设计实践,MATLAB程序设计实践(第二题)