文章目录

  • 1、示例脚本
  • 2、desired_capabilities 参数解析
  • 常用参数设置
    • 2.1 全局参数:
    • 2.2 驱动程序及服务器 参数:
    • 2.3 App 参数:
    • 2.4 App本地化 参数:
    • 2.5 ADB 参数:
    • 2.6 模拟器(Android 虚拟设备) 参数:
    • 2.7 App签名 参数:
    • 2.8 解锁设备 参数:
    • 2.9 其他 参数:

1、示例脚本

from appium import webdriver# 启动appium服务后,在appium服务上执行:带着 caps 参数启动 雪球app
driver = webdriver.Remote(command_executor="http://localhost:4723/wd/hub", # command_executor 源码里是默认本地的4723接口,如果我们在本地运行的appium,原则上是可以删掉的desired_capabilities={"platformName": "android",  # 在安卓平台上运行"deviceName": "008640dd0804",  # 在008xxx移动设备上运行"automationName": "uiautomator2",  # 底层使用的自动化插件"appPackage": "com.xueqiu.android",  # 运行哪个app"appActivity": ".view.WelcomeActivityAlias",  #"autoGrantPermissions": "true"  # 默认允许app获取相关权限})# 点击 某个元素
el1 = driver.find_element_by_id("com.xueqiu.android:id/tv_agree")
el1.click()# 添加隐形等待
driver.implicitly_wait(60)# 点击某元素
el2 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.view.ViewGroup/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.RelativeLayout[1]/android.widget.RelativeLayout/android.widget.ViewFlipper/android.widget.LinearLayout/android.widget.TextView")
el2.click()# 发送文本
el3 = driver.find_element_by_id("com.xueqiu.android:id/search_input_text")
el3.send_keys("alibaba")# 退出app
driver.quit()

2、desired_capabilities 参数解析

常用参数设置

  1. automationName:默认使用 uiatomator
  2. noReset fullReset:是否在测试前后重置相关环境
  3. autoGrantPermissions:自动赋予 App 权限
  4. unicodeKeyBoard resetKeyBoard:是否需要输入非英文之外的语言并在测试完成后重置输入法

2.1 全局参数:

  1. platformName: 你要在哪个平台运行,可以设置为 android
  2. automationName: 必须始终设置为uiautomator2
  3. deviceName:被测设备的名称
  1. noReset: 重置设备清理数据,默认重置
  2. fullReset: 完全重置会卸载被测app,默认不完全重置
  3. printPageSourceOnFindFailure:报错则将实际的 XML 页面源转储到日志
  4. platformVersion:用于设备自动检测
  5. udid:要测试的设备的 UDID。可以从adb devices -l输出中检索。如果未设置,则驱动程序将尝试使用第一个连接的设备。如果运行并行测试,请始终设置此功能。

2.2 驱动程序及服务器 参数:

  1. skipServerInstallation:跳过被测设备上的 UiAutomator2 服务器组件安装以及所有相关检查,默认 false
  2. disableWindowAnimation:启动过程时检测是否禁用窗口动画,默认 false
  3. skipDeviceInitialization:设置为 true,在会话创建时取消设备启动检查,可以加快会话创建速度,默认 false
  1. systemPort:UiAutomator2 服务器正在侦听的端口号。默认情况下,选择 8200…8299 范围内的第一个空闲端口。如果您在同一台机器上运行并行测试,建议设置此值。
  2. uiautomator2ServerLaunchTimeout:UiAutomator2Server 在设备上监听的最大等待毫秒数。30000默认为毫秒
  3. uiautomator2ServerInstallTimeout:设备上安装 UiAutomator2Server 的最大等待毫秒数。20000默认为毫秒
  4. uiautomator2ServerReadTimeout:等待来自 UiAutomator2Server 的 HTTP 响应的最大毫秒数。

2.3 App 参数:

  1. appActivity:主要应用活动的名称
  2. appPackage:应用程序包的标识符
  3. autoLaunch:测试开始后是否自动启动被测应用程序,默认 True
  4. autoGrantPermissions:在测试开始时自动授予所有请求的应用程序权限,默认 False
  5. otherApps:设置一个或多个逗号分隔的 Android 包路径,这些包将与被测主应用程序一起安装。如果测试的应用程序具有依赖项
  6. uninstallOtherPackages:允许设置一个或多个以逗号分隔的包标识符,以便在测试开始之前从设备中卸载
  7. enforceAppInstall:true则始终重新安装被测应用程序,即使被测设备上已经存在该应用程序的较新版本
  1. app:要测试的应用程序的完整路径
  2. browserName:运行测试的浏览器的名称
  3. appWaitActivity:对活动名称的等待
  4. appWaitPackage:对程序包的等待
  5. appWaitDuration:等待被测应用程序启动的最大毫秒数
  6. androidInstallTimeout:等待安装被测应用程序的最大毫秒数
  7. appWaitForLaunch:是阻塞直到被测应用程序在其活动被活动管理器启动后将控制权返回给调用者(true默认值),还是继续测试而不等待(false)。
  8. intentCategory:设置通过Activity Manager启动给定 appActivity 时应用的可选意图类别
  9. intentAction:设置通过Activity Manager启动给定 appActivity 时应用的可选意图操作
  10. intentFlags:设置通过Activity Manager启动给定 appActivity 时应用的可选意图标志
  11. optionalIntentArguments:设置由Activity Manager启动给定 appActivity 时应用的可选意图参数
  12. dontStopAppOnReset:应用程序已在运行时重新启动
  13. allowTestPackages:使用 test 标志构建的包进行自动化测试
  14. remoteAppsCacheLimit:设置要在被测设备上缓存的应用程序包的最大数量

2.4 App本地化 参数:

  1. localeScript:为被测应用设置的语言环境的规范名称,例如 zh-Hans-CN
  2. language:要为其提取应用程序字符串的语言名称。 默认为当前系统语言提取字符串。
  3. locale:设置被测应用的语言环境

2.5 ADB 参数:

  • adbPort:运行 ADB 的端口号,默认 5037
  • remoteAdbHost:运行 ADB 的主机的地址(-HADB 命令行选项的值)。默认未设置
  • adbExecTimeout:等待执行单个 ADB 命令的最大毫秒数。20000默认为毫秒
  • clearDeviceLogsOnStart:UiAutomator2 会在开始新测试之前删除设备缓冲区中的所有现有日志,默认 False
  • buildToolsVersion:要使用的 Android 构建工具的版本,UiAutomator2 驱动程序使用机器上安装的最新版本的构建工具
  • skipLogcatCapture:在测试运行期间禁用自动 logcat 输出收集,默认false
  • suppressKillServer:设置为true防止驱动程序显式终止 ADB 服务器。如果 ADB 以无线方式连接,可能会很有用
  • ignoreHiddenApiPolicyError:设置为 true 会在更改隐藏的 API 访问策略时忽略失败
  • mockLocationApp
  • logcatFormat
  • logcatFilterSpecs
  • allowDelayAdb

2.6 模拟器(Android 虚拟设备) 参数:

  1. networkSpeed:为模拟器设置所需的网络速度限制
  2. gpsEnabled:在模拟器中启用 GPS 服务。
  3. isHeadless:模拟器以无GUI模式启动
  4. avd:运行测试的 Android 模拟器的名称,查看当前安装的模拟器名称:avdmanager list avd
  5. avdLaunchTimeout:等待安卓模拟器启动的最大毫秒数,默认6秒
  6. avdReadyTimeout:等待安卓模拟器完全启动的最大毫秒,默认6秒
  7. avdArgs:字符串或模拟器命令行参数数组。
  8. avdEnv:模拟器环境变量的影身

2.7 App签名 参数:

  1. noSign:跳过应用程序签名
  2. useKeystore:使用自定义密钥库对被测应用进行签名
  3. keystorePath:服务器文件系统上密钥库文件的完整路径
  4. keystorePassword:功能中提供的密钥库文件的密码keystorePath
  5. keyAlias:能力中提供的密钥库文件中密钥的别名keystorePath
  6. keyPassword:力中提供的密钥库文件中密钥的密码keystorePath

2.8 解锁设备 参数:

  1. skipUnlock:是否跳过锁屏存在检查 ( true)。默认情况下,UiAutomator2 驱动程序会尝试在开始测试之前检测设备的屏幕是否被锁定并解锁
  2. unlockType:设置一种可能的 Android 锁定屏幕类型以进行解锁
  3. unlockKey:允许设置解锁密钥
  4. unlockStrategy:“锁定设置”(默认)或“uiautomator”。将其设置为“uiautomator”将强制驱动程序避免使用特殊的ADB快捷方式,以加快解锁过程。
  5. unlockSuccessTimeout:等待设备解锁的最大毫秒数,默认2秒

2.9 其他 参数:

  1. userProfile:用户配置文件的整数标识符。默认情况下,正在测试的应用程序是为当前活动的用户安装的,但如果在为用户配置文件安装应用程序时需要测试应用程序的性能,这与当前用户配置文件不同,那么此功能可能会派上用场。
  2. skipLogCapture:跳过以开始捕获日志,例如logcat。这可能会提高网络性能。如果启用该功能,与日志相关的命令将不起作用。默认为false。
  3. newCommandTimeout:在假设客户端停止发送请求之前,驱动程序应该等待来自客户端的新命令多长时间(以秒为单位)
  4. disableSuppressAccessibilityService:测试期间不要抑制可访问性服务。

appium学习总结3 - desired_capabilities参数解析相关推荐

  1. boost学习之命令行参数解析库program_options

    介绍 程序参数项(program options)是一系列name=value对,program_options 允许程序开发者获得通过命令行(command line)和配置文件(config fi ...

  2. Go 学习笔记(45)— Go 标准库之 flag(命令行参数解析)

    1. 参数解析说明 import "flag" flag 包实现了命令行参数的解析.每个参数认为一条记录,根据实际进行定义,到一个 set 集合.每条都有各自的状态参数. 使用 f ...

  3. 【Qt】通过QtCreator源码学习Qt(六):命令行参数解析实现

    参考下大神的命令行参数解析是如何是实现的 //使用const char []代替宏定义字符串,我以前都是用const QString,想想好傻 const char SETTINGS_OPTION[] ...

  4. 用appium一定要注意这个参数,不然就会清空数据了(appium打开软件怎么才能不清空数据)

    今天刚学习了appium的一些操作后就去自己尝试,然后,意外就发生了,我看的课程里是用的系统设置,然后我就尝试着要用qq试一下,结果运行完后我手动打开qq,我整个人都懵了,我qq变成全新的了,数据都被 ...

  5. 编程模板-R语言脚本写作:最简单的统计与绘图,包安装、命令行参数解析、文件读取、表格和矢量图输出

    写在前面 个人认为:是否能熟悉使用Shell(项目流程搭建)+R(数据统计与可视化)+Perl/Python等(胶水语言,数据格式转换,软件间衔接)三门语言是一位合格生物信息工程师的标准. 之前分享过 ...

  6. Python中最好用的命令行参数解析工具

    Python 做为一个脚本语言,可以很方便地写各种工具.当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件来实现). 如果要以命令行执行,那你需要解析一个命令行参数解 ...

  7. springboot调整请求头大小_【SpringBoot WebFlux 系列】 header 参数解析

    上一篇 weblfux 主要介绍了 path 参数的解析与映射关系,在我们进入 url 参数/post 表单之前,先看一下另外的一种参数--请求头中的参数如何处理 I. 项目环境 本项目借助Sprin ...

  8. python 命令行参数-Python 中最好用的命令行参数解析工具

    Python 做为一个脚本语言,可以很方便地写各种工具.当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件来实现). 如果要以命令行执行,那你需要一个命令行参数解析的 ...

  9. 深度学习框架Caffe源码解析

    作者:薛云峰(https://github.com/HolidayXue),主要从事视频图像算法的研究, 本文来源微信公众号:深度学习大讲堂.  原文:深度学习框架Caffe源码解析  欢迎技术投稿. ...

最新文章

  1. windows mysql增量备份_windows下mysql增量备份与全备份批处理
  2. 甲骨文:正在从SAP手中赢得应用产品市场份额
  3. 第 19 课时:调度器的调度流程和算法介绍(木苏)
  4. Typora一次编辑,知乎、CSDN等多平台快速发布:Typora + PicGo + 图床
  5. VB获取Windows操作系统所有版本
  6. 所有子模块都要执行的checkstyle检查
  7. Receive 163 mails
  8. MATLAB机器学习系列-10:遗传算法原理及其matlab遗传算法工具箱使用
  9. 小程序下拉刷新,如何等待数据返回再收起loading
  10. Fw cs6破解版下载 准备学前端的同学们应该会用到的神器
  11. 电脑取消撤销快捷键是什么_都知道“撤消”快捷键是Ctrl Z,那“反撤消”是什么呢?...
  12. python网课期中答案_中国大学python答案网课期末慕课MOOC答案
  13. fpga实现dds和混频器
  14. R语言学习2.1.数值型与字符型
  15. NFC:跟现金和信用卡说不
  16. 4412运行java_Tiny4412 Android 启动流程
  17. IPV6----升级点,地址分类及部分协议配置
  18. 基于有源钳位三电平的有源电力滤波器(ANPC-APF)MATLAB仿真,包括自建的DSOGI锁相模块和PQ谐波检测模块
  19. The 16th Heilongjiang Provincial Collegiate Programming Contest部分题解
  20. win10VS+QT/OpenCV/灰点相机配置及其使用

热门文章

  1. C语言对文件进行crc32校验
  2. 使用Python开发windows桌面程序【超简单】
  3. 北大生弑母,可怜之人必有可恨之处
  4. 移动端App开发的三种开发技术对比
  5. Win8环境下USB Blaster驱动安装问题解决方法
  6. ChatGPT的历史和发展过程是怎样的?
  7. 关于百度api地图中中文乱码的处理
  8. 使用嵌套循环产生下列图案 $ $$ $$$ $$$$
  9. 关于K8s中资源服务质量管理Resource Qos的一些笔记整理
  10. 【Pytorch基础教程37】Glove词向量训练及TSNE可视化