Appium+python自动化21-DesiredCapabilities详解

Appium Desired Capabilities

Desired Capabilities 是由 keys 和 values 组成的 JSON 对象。

举个简单例子:

{
    "platformName": "iOS",
    "platformVersion": "11.0",
    "deviceName": "iPhone 7",
    "automationName": "XCUITest",
    "app": "/path/to/my.app"
}

基本参数

参数描述实例
automationName自动化测试引擎AppiumSelendroid
platformName手机操作系统iOS, Android, 或 FirefoxOS
platformVersion手机操作系统版本如: 7.1, 4.4;ios的 9.0
deviceName手机或模拟器设备名称android的忽略,ios如iPhone Simulator
app.ipa .apk文件路径比如/abs/path/to/my.apkhttp://myapp.com/app.ipa
browserName启动手机浏览器iOS如:Safari,Android如:Chrome,Chromium,Browser
newCommandTimeout设置命令超时时间,单位:秒。比如 60
autoLaunchAppium是否需要自动安装和启动应用。默认值truetrue, false
language(Sim/Emu-only) 设定模拟器 ( simulator / emulator ) 的语言。如: fr
locale(Sim/Emu-only) 设定模拟器 ( simulator / emulator ) 的区域设置。如: fr_CA
udidios真机的唯一设备标识如: 1ae203187fc012g
orientation设置横屏或竖屏LANDSCAPE (横向) 或 PORTRAIT (纵向)
autoWebview直接转换到 WebView 上下文。 默认值 falsetrue, false
noReset不要在会话前重置应用状态。默认值falsetrue, false
fullReset(iOS) 删除整个模拟器目录。(Android)通过卸载默认值 falsetrue, false

Android特有

关键字描述实例
appActivity启动app包,一般点开头如:.MainActivity, .Settings
appPackageAndroid应用的包名比如com.example.android.myApp
appWaitActivity等待启动的Activity名称SplashActivity
deviceReadyTimeout设置超时时间5
androidCoverage用于执行测试的 instrumentation类com.my.Pkg/com.my.Pkg.instrumentation.MyInstrumentation
enablePerformanceLogging(仅适用于 Chrome 和 webview) 开启 Chromedriver 的性能日志。(默认 false)true, false
androidDeviceReadyTimeout等待设备在启动应用后超时时间,单位秒30
androidDeviceSocket开发工具的 socket 名称。Chromedriver 把它作为开发者工具来进行连接。chrome_devtools_remote
avd需要启动的 AVD (安卓模拟器设备) 名称。api19
avdLaunchTimeout以毫秒为单位,等待 AVD 启动并连接到 ADB的超时时间。(默认值 120000)300000
avdReadyTimeout以毫秒为单位,等待 AVD 完成启动动画的超时时间。(默认值 120000)300000
avdArgs启动 AVD 时需要加入的额外的参数。-netfast
useKeystore使用一个自定义的 keystore 来对 apk 进行重签名。默认值 falsetrue or false
keystorePath自定义keystore路径。默认~/.android/debug.keystore/path/to.keystore
keystorePassword自定义 keystore 的密码。foo
keyAliaskey 的别名androiddebugkey
keyPasswordkey 的密码foo
chromedriverExecutablewebdriver可执行文件的绝对路径 应该用它代替Appium 自带的 webdriver)/abs/path/to/webdriver
autoWebviewTimeout毫秒为单位,Webview上下文激活的时间。默认20004
intentAction用于启动activity的intent action。(默认值 android.intent.action.MAIN)android.intent.action.MAIN, android.intent.action.VIEW
intentCategory用于启动 activity 的 intent category。 (默认值 android.intent.category.LAUNCHER)android.intent.category.LAUNCHER, android.intent.category.APP_CONTACTS
intentFlags用于启动activity的标识(flags) (默认值 0x10200000)0x10200000
optionalIntentArguments用于启动 activity 的额外 intent 参数。请查看 Intent 参数--esn <EXTRA_KEY>, --ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE>
dontStopAppOnReset在使用 adb 启动应用时不要停止被测应用的进程。默认值: falsetruefalse
unicodeKeyboard使用 Unicode 输入法。默认值 falsetruefalse
resetKeyboard重置输入法到原有状态,默认值 falsetruefalse
noSign跳过检查和对应用进行 debug 签名的步骤。默认值 falsetruefalse
ignoreUnimportantViews调用 uiautomator 的函数这个关键字能加快测试执行的速度。默认值 falsetruefalse
disableAndroidWatchers关闭 android 监测应用无响ANR和崩溃crash的监视器默认值: falsetrue 或者 false
chromeOptions允许传入 chrome driver 使用的 chromeOptions 参数。请查阅 chromeOptions 了解更多信息。chromeOptions: {args: [‘--disable-popup-blocking‘]}

iOS特有

关键字描述实例
calendarFormat(Sim-only) 为iOS的模拟器设置日历格式gregorian (公历)
bundleId被测应用的bundle ID,真机上执行测试时,你可以不提供 app 关键字,但你必须提供udidio.appium.TestApp
udid连接真机的唯一设备编号 ( Unique device identifier )1ae203187fc012g
launchTimeout以毫秒为单位,在Appium运行失败之前设置一个等待 instruments的时间比如: 20000
locationServicesEnabled(Sim-only) 强制打开或关闭定位服务。默认值是保持当前模拟器的设定truefalse
locationServicesAuthorized使用这个关键字时,你同时需要使用 bundleId 关键字来发送你的应用的 bundle ID。true 或者 false
autoAcceptAlerts当 iOS 的个人信息访问警告 (如 位置、联系人、图片) 出现时,自动选择接受( Accept )。默认值 falsetrue 或者 false
autoDismissAlerts当 iOS 的个人信息访问警告 (如 位置、联系人、图片) 出现时,自动选择不接受( Dismiss )。默认值 falsetrue 或者 false
nativeInstrumentsLib使用原生 intruments 库 (即关闭 instruments-without-delay )true 或者 false
nativeWebTap(Sim-only) 在Safari中允许"真实的",默认值: false。注意:取决于 viewport 大小/比例, 点击操作不一定能精确地点中对应的元素。true 或者 false
safariInitialUrl(Sim-only) (>= 8.1) Safari 的初始地址。默认值是一个本地的欢迎页面例如: https://www.github.com
safariAllowPopups(Sim-only) 允许 javascript 在 Safari 中创建新窗口。默认保持模拟器当前设置。true 或者 false
safariIgnoreFraudWarning(Sim-only) 阻止 Safari 显示此网站可能存在风险的警告。默认保持浏览器当前设置。true 或者 false
safariOpenLinksInBackground(Sim-only) Safari 是否允许链接在新窗口打开。默认保持浏览器当前设置。true 或者 false
keepKeyChains(Sim-only) 当 Appium 会话开始/结束时是否保留存放密码存放记录 (keychains) (库(Library)/钥匙串(Keychains))true 或者 false
localizableStringsDir从哪里查找本地化字符串。默认值 en.lprojen.lproj
processArguments通过 instruments 传递到 AUT 的参数-myflag
interKeyDelay以毫秒为单位,按下每一个按键之间的延迟时间。100
showIOSLog是否在 Appium 的日志中显示设备的日志。默认值 falsetrue 或者 false
sendKeyStrategy输入文字到文字框的策略。模拟器默认值:oneByOne (一个接着一个) 。真实设备默认值:grouped (分组输入)oneByOne, groupedsetValue
screenshotWaitTimeout以秒为单位,生成屏幕截图的最长等待时间。默认值: 10。5
waitForAppScript用于判断 "应用是否被启动” 的 iOS 自动化脚本代码。默认情况下系统等待直到页面内容非空。结果必须是布尔类型。例如 true;, target.elements().length > 0;, $.delay(5000); true;

iOS Only, using XCUITest

(For XCUITest-specific capabilities, please refer to the documentation on the XCUITest Driver repo itself.)

You.i Engine Only

(For You.i Engine-specific capabilities, please refer to the documentation on the You.i Engine driver itself.)

官方文档:https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
在学习过程中有遇到疑问的,可以appium+python QQ群交流:330467341

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Appium是一个用于自动化移动应用程序的开源工具,而Python是一种流行的编程语言,可以使用AppiumPython来实现移动应用程序的自动化测试。 连接模拟器并启动淘宝App的步骤如下: 1. 首先,需要安装AppiumPython的相关环境,包括Node.js、npm、Appium Server、PythonAppium Python客户端库。 2.打开Android模拟器,确保模拟器已经启动。 3.导入所需的Python库,包括webdriver、MobileBy和AppiumWebElement。 4.设置Appium连接参数,包括设备名称、平台版本、App路径和包名。 5.通过Appium Python客户端库中的webdriver.Remote()方法建立与Appium Server的连接。 6.使用find_element()方法找到并点击启动淘宝App的按钮。 7.等待淘宝App启动完成。 完整的Python代码示例如下: ```python from appium import webdriver from appium.webdriver.common.mobileby import MobileBy from appium.webdriver.webelement import WebElement desired_caps = { 'platformName': 'Android', 'platformVersion': '10', 'deviceName': 'emulator-5554', 'appPackage': 'com.taobao.taobao', 'appActivity': 'com.taobao.tao.homepage.MainActivity3' } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) button = driver.find_element(MobileBy.XPATH, '//android.widget.Button[@text="淘宝"]') button.click() # 等待淘宝App启动完成 driver.implicitly_wait(10) driver.quit() ``` 请注意,上述代码中的设备名称、平台版本、App路径和包名需要根据实际情况进行修改。 以上就是使用AppiumPython连接模拟器并启动淘宝App的详细步骤和示例代码。通过这种方式,可以进行移动应用程序的自动化测试和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值