今天详解一下Capabilities的各个标签,以后如果用得着可以随时翻阅。

General Capabilities

标签 概述
automationName 使用引擎 默认为Appium,其中Appium、UiAutomator2、Selendroid、Espresso用于Android,XCUITest用于iOS
platformName 操作系统 如iOS、Android、FirefoxOS
platformVersion 操作系统版本 如7.1,4.4
deviceName 设备名 如iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4,iOS需要,Android可以忽略
app apk、.ipa等的加载路径 如D:\\text.apk、/home/zhuyt/test.ipa
browserName 浏览器名,若为app则省略 如'Safari'、'Chromium'
newCommandTimeout appium server与client的超时时间 如60s
language 语言,默认只有用Siumulator才有效 如fr
locale 国家地区,默认只有用Siumulator才有效 如fr_CA, CA
udid 连接的物理设备的唯一设备标识符 如1ae203187fc012g
orientation (仅限Sim / Emu)以某个方向开始 LANDSCAPE or PORTRAIT
autoWebview 直接进入Webview上下文,默认False True,False
noReset 在会话前,不重启app,重启的话只删除数据 True,False
fullReset 完全重启app,删除app,数据后重启 True,False
eventTimings 启用或禁用各种Appium内部事件的时间报告,默认False True,False
enablePerformanceLogging (仅限Web和webview)使在Chrome(在Android上)或Safari(在iOS上)可以有log(默认为false) True,False
printPageSourceOnFindFailure  当某个操作失败时,打印当前页面代码,默认False True,False

Android Only

标签 概述
appActivity package中想要运行的Activity name,名字前通常需要加.,默认从package manifest读取  如.MainActivity,MainActivity
appPackage Android app中想要运行的Java的package包,默认从package manifest读取 如com.example.android.myApp
appWaitActivity 设置要等待的activity,默认与appActivity一样,若有appActivity、appPackage,则必须设置为第一个启动的activity名称 如MainActivity,MainActivity
appWaitPackage 要等待的App内的Java Package,默认与appPackage相等. 如com.example.android.myApp, com.android.settings
appWaitDuration 用于等待appWaitActivity启动的超时(以毫秒为单位)(默认为20000) 如30000
deviceReadyTimeout 等待设备准备就绪时的超时时间(默认为s) 如5
allowTestPackages 如果在manifest中有android:testOnly="true",则允许安装test Package,默认为False True,False
androidCoverage 用于执行测试的 instrumentation 类, adb shell am instrument -e coverage true -w 后接instumentation类,如com.my.Pkg.instrumentation.MyInstrumentation
androidCoverageEndIntent 设置实施的广播操作,覆盖范围为文件系统。即调用adb shell am broadcast -a  后接参数如com.example.pkg.END_EMMA
androidDeviceReadyTimeout 设备引导结束后,准备就绪的超时时间    如30
androidInstallTimeout 安装apk用的超时时间,默认90000毫秒 如90000
androidInstallPath apk安装前会先被push到的地址,默认是/data/local/tmp 如/sdcard/Downloads/
adbPort adb server的port,默认是5037 如5037
systemPort SystemPort用来连接appium-uiautomator2-server 或 appium-espresso-driver。对于前者,端口通常是8200-8299,后者为8300-8399,当两者都要用时,要注意产生冲突 如8201
remoteAdbHost 远程的ADB host 如192.168.0.101
androidDeviceSocket Devtools套接字名称。 仅在测试的应用程序是Chromium浏览器时才需要。 套接字由浏览器打开,Chromedriver作为devtools客户端连接浏览器。 如chrome_devtools_remote
avd   要启动的avd名 如api19
avdLaunchTimeout avd启动并连接到adb的超时时间,默认为60000毫秒 如30000
avdReadyTimeout avd完成启动的动画需要的超时时间,默认为120000毫秒  如30000
avdArgs 模拟器启动时额外的参数 如-netfast
useKeystore 使用自定义密钥库对apk签名,默认为false True,Fasle
keystorePath 自定义密钥库的地址,默认为~/.android/debug.keystore 如/path/to.keystore
keystorePassword 密钥库的密码 如foo
keyAlias 密钥的别名 如androiddebugkey
keyPassword 密钥的密码 如foo
chromedriverExecutable webdriver的绝对路径,如果chrome提供给了自己的wedriver,则应使用这,不用与appium绑定的chromedriver 如/abs/path/to/webdriver
chromedriverExecutableDir chromedriver的路径,会自动在该路径寻找chromedriver,如果chromedriverUseSystemExecutable 是true,则忽略 如/abs/path/to/chromedriver/directory
chromedriverChromeMappingFile 文件的绝对路径,将Chromedriver版本映射到它支持的最小Chrome。 如果chromedriverUseSystemExecutable为true,则忽略 如/abs/path/to/mapping.json
chromedriverUseSystemExecutable 如果为true,则绕过自动Chromedriver配置并使用随Appium下载的版本。 如果设置了chromedriverExecutable,则忽略。 默认为false True,False
autoWebviewTimeout 等待webView激活的超时时间,默认是2000毫秒 如2000
intentAction 用于启动 activity 的 intent action,默认值为android.intent.action.MAIN 如android.intent.action.MAIN
intentCategory

指定当前动作(Action)被执行的环境

如android.intent.category.LAUNCHER, android.intent.category.APP_CONTACTS
intentFlags 用于启动的activity的标志,默认0x10200000 如0x10200000
optionalIntentArguments 用于启动activity的intent action的参数 如--esn <EXTRA_KEY>, --ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE>
dontStopAppOnReset 用于是否关闭activity所属的app后再启动activity,等同于adb shell am start 是否使用-S参数 True,False
unicodeKeyboard 使可以输入Unicode,默认为False True,False
resetKeyboard 在用Unicode测试完成后,将键盘reset,不可单独使用,默认为False True,False
noSign 使用调试键跳过检查和签名应用程序,仅适用于UiAutomator,而不适用于selendroid,默认为false True,False
ignoreUnimportantViews 是否调用uiautomator的函数setCompressedLayoutHierarchy(),此功能能加快测试速度,Accessibility命令将更快地运行而忽略某些元素 True,False
disableAndroidWatchers 是否禁用app的监听功能,这会减少cpu使用率。此功能仅适用于UiAutomator,而不适用于selendroid,默认为false True,False
chromeOptions 提供chromeDriver的capability参数 chromeOptions: {args: ['--disable-popup-blocking']}
recreateChromeDriverSessions 移动至非web程序时,是否杀掉chromeDriver True,False
nativeWebScreenshot 在web程序中,用原生adb截图,而不是chromeDriver True,False
androidScreenshotPath 文件截图默认存放地址 如/sdcard/screenshots/
autoGrantPermissions 让appium自动授权app权限,如果noReset为True,则该条不生效 True,False
networkSpeed 指定网络最快上传与下载速度 如['full','gsm', 'edge', 'hscsd', 'gprs', 'umts', 'hsdpa', 'lte', 'evdo']
gpsEnabled 是否启动gps True,False
isHeadless 将此功能设置为true可在无需显示设备时运行仿真器。 false是默认值isHeadless也支持iOS,检查特定于XCUITest的功能 True,False
otherApps 运行测试前需要安装的app列表 如"/path/to/app.apk", https://www.example.com/url/to/app.apk, ["/path/to/app-a.apk", "/path/to/app-b.apk"]
adbExecTimeout adb指令超时时间,默认是20000毫秒 如50000
localeScript 建立一个script 例如"Cyrl" (Cyrillic)

UIAutomator2 Only

标签 概述
uiautomator2ServerLaunchTimeout 等待uiAutomator2的server启动超时时间,单位毫秒 如3000
uiautomator2ServerInstallTimeout 等待uiAutomator2的server被安装超时时间,单位毫秒 如3000

Espresso Only

标签 概述
espressoServerLaunchTimeout 等待espresso的server的启动超时时间,单位毫秒 如3000

iOS Only

标签 概述
calendarFormat (仅限Sim)要为iOS模拟器设置的日历格式 如gregorian
bundleId 被测试应用程序的bundle Id。用于在真实设备中启动测试,。在使用 bundle ID 在真实设备上执行测试时,你可以省略'app'关键字,但你必须提供 `udid` , 如io.appium.TestApp
udid 设备唯一物理地址号 如1ae203187fc012g
launchTimeout 启动超时时间,单位毫秒 如3000 
locationServicesEnabled (仅限Sim)强制关闭定位与否。 True,False
locationServicesAuthorized (仅限Sim)通过修改 plist 文件设定是否允许应用使用定位服务,从而避免定位服务的警告出现。请注意在使用这个关键字时,必须需要使用 `bundleId` 关键字来发送应用的 bundle ID。 True,False
autoAcceptAlerts 接收任何警告处理,包括隐私访问许可警报。默认为False。不适用于基于XCUITest的测试。 True,False
autoDismissAlerts 不接受任何警告处理,包括隐私访问许可警报。默认为False。不适用于基于XCUITest的测试。 True,False
nativeInstrumentsLib 使用原生 intruments 库 (即关闭 instruments-without-delay )  True,False
nativeWebTap (仅限Sim)在Safari中启用“真实的”非基于JavaScript的网络点击。 默认值:false。 警告:根据视口大小/比例,这可能无法准确地点击元素 True,False
safariInitialUrl (仅限Sim)(>= 8.1) 初始的safari的URL,默认是当前的欢迎页 如https://www.github.com
safariAllowPopups (仅限Sim)允许用JS在Safari中打开新窗口。 True,False
safariIgnoreFraudWarning (仅限Sim)防止Safari显示欺诈性网站警告。 True,False
safariOpenLinksInBackground (仅限Sim)Safari是否应允许在新窗口中打开链接。  True,False
keepKeyChains (仅限Sim)是否在启动/完成appium会话时保留KeyChains,即保存密码等。 True,False
localizableStringsDir (仅限Sim)是否寻找本地化的字符串。默认en.lproj True,False
processArguments 通过 instruments 传递到 AUT 的参数 如-myflag
interKeyDelay 输入值时发送到元素的延迟时间 如100
showIOSLog 是否在appium日志中显示从设备捕获的任何日志。 默认为false True,False
sendKeyStrategy 输入文本到文本框的策略。模拟器默认:一个一个输。真实设备:分组输 oneByOne, grouped or setValue 
screenshotWaitTimeout 等待生成屏幕截图的最大超时秒数。 默认值:10,单位为秒 如10
waitForAppScript 用于判断 "应用是否被启动” 的 iOS 自动化脚本代码。默认情况下系统等待直到页面内容非空。结果必须是布尔类型。 如true;, target.elements().length > 0;, $.delay(5000); 
webviewConnectRetries 将连接消息发送到远程调试器以获取webview的次数。 默认值:8 如8
appName 被测试的app的显示名字。IOS系统版本需要为9.0+ 如UICatalog
customSSLCert (仅限Sim)将SSL证书添加到iOS的模拟器中

-----BEGIN CERTIFICATE-----MIIFWjCCBEKg...
-----END CERTIFICATE-----

webkitResponseTimeout (只限制真实设备)等待safari中页面的响应时间,默认为毫秒 如3000
remoteDebugProxy  (仅限Sim, <= 11.2)如果设置,Appium通过本地端口(仅限Sim,<= 11.2)上的代理或此unix套接字上的代理(仅Sim> = 11.3)发送和接收远程调试消息,而不是直接与iOS远程调试器通信。 例如 12000 如12000 or "/tmp/my.proxy.socket"

appium Capabilities的各个标签的更多相关文章

  1. appium(5)-Appium capabilities

    Appium Capabilities Appium server capabilities Capability Description Values automationName Which au ...

  2. Appium Capabilities 详解(Android适配/IOS后续再补充)

    Appium 关键字 关键字 描述 实例 automationName 你想使用的自动化测试引擎 Appium (默认) 或 Selendroid platformName 你要测试的手机操作系统 i ...

  3. Appium移动自动化测试-----(七)Desired Capabilities

    Desired Capabilities Desired Capabilities 在启动 session 的时候是必须提供的. Desired Capabilities 本质上是以 key valu ...

  4. 第一个appium的Demo

    原文来自:一颗糖果  http://www.cnblogs.com/linglingyuese/articles/8418311.html 一.环境搭建 略(后期补) 二.创建一个测试apk包的项目 ...

  5. Appium python自动化测试系列之认识Appium(四)

    ​4.1界面认识 在之前安装appium的时候说过我们有两种方法安装,也就有两种结果,一种是有界面的,一种是没有界面的,首先我们先讲一下有界面的,以及界面有哪些东西. 首先看第一幅图,如果你的是win ...

  6. Appium+python自动化(八)- 初识琵琶女Appium(千呼万唤始出来,犹抱琵琶半遮面)- 下(超详解)

    ​简介 通过上一篇宏哥给各位小伙伴们的引荐,大家移动对这位美女有了深刻的认识,而且她那高超的技艺和婀娜的身姿久久地浮现在你的脑海里,是不是这样呢???不要害羞直接告诉宏哥:是,就对了.宏哥要的就是这个 ...

  7. Appium简单测试用例

    工程目录如下: 封装初始化androiddriver 方法 import org.openqa.selenium.remote.DesiredCapabilities; import java.io. ...

  8. 五 Android Capabilities讲解

    1.Capabilities介绍 可以看下之前代码里面设置的capabilities DesiredCapabilities capabilities = new DesiredCapabilitie ...

  9. 三 APPIUM Android自动化 测试初体验

    1.创建一个maven项目 成功新建工程: 编辑pom.xml,在<dependencies></dependencies>下添加appium相关依赖: <depende ...

随机推荐

  1. hrabs 首页 新闻,快捷菜单,响应式列表,seliverlight

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="firstPage.aspx ...

  2. 修复PlatformToolsets丢失问题(为VS2013以上版本安装VC90,VC100编译器)

    前段时间测试VS2017的IDE时不小心弄丢了 MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets 下的VC90以及VC100的编译 ...

  3. Web图片编辑控件升级日志-Xproer.ImageEditor

    版权所有 2009-2014 荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com 产品首页:http://www.ncmem.com/webplug/image-e ...

  4. 使用electron-packager electron-builder electron-updater 打包vue项目,支持在线更新

    1.如何用electron-packager electron-builder打包vue项目,打包成桌面程序. 步骤一. 执行npm run build 打包你的vue项目. 打包成功后,生成dist ...

  5. 团队-Forward-团队一阶段互评

    学号:2015035107105得分:4原因:代码不规范,有一些错误,需要我们的帮助. 学号:2015035107109得分:7原因:与队员沟通少,代码衔接有问题. 学号:2015035107113得 ...

  6. eclipse启动tomcat出现内存溢出错误 java.lang.OutOfMemoryError: PermGen space

    发布工程后,启动tomcat出现如下内存溢出错误: java.lang.OutOfMemoryError: PermGen space ... java.lang.OutOfMemoryError: ...

  7. ZSTU4270 同源数 2017-03-22 14:34 82人阅读 评论(0) 收藏

    4270: 同源数 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 1284  Solved: 224 Description 如果x和y的质因子集合完 ...

  8. 4、Docker的安装

      docker官方安装文档 Mac上安装Docker   Install Docker for Mac | Docker Documentation Windows安装Docker   Instal ...

  9. How To Make A DFF Read Only Through Form Personalisations? (文档 ID 1289789.1)

    In this Document   Goal   Solution   References APPLIES TO: Oracle Application Object Library - Vers ...

  10. ADB server didn't ACK问题,连上手机问题(转)

    出现如下情况 ADB server didn't ACK* failed to start daemon * 解决办法: 方法一: (1)查看任务管理器,关闭所有adb.exe,或者运行->cm ...