Desired Capabilities
负责启动服务端时的参数设置,启动session的时候是必须提供的。
Desired Capabilities携带了一些配置信息,从本质上来讲,它是key-value形式的对象。它会告诉appium server这样一些事情,如:
- 本次测试是启动浏览器还是启动移动设备?
- 是启动andorid还是启动ios?
- 启动android时,app的package是什么?
- 启动android时,app的activity是什么?
Desired Capabilities android特有键值对
automationName:使用哪种自动化引擎。默认Appium。
platfromName:平台的名称,ios、android等
platformVersion:移动设备的系统版本号,可在设置>关于手机>Android版本进行查看
deviceName:设备名称,Android:可随意填写; IOS:instruments -s devices
udid:连接的物理设备的唯一设备标识 adb devices 可获取
app:本地绝对路径_或_远程 http URL 所指向的一个安装包(.ipa,.apk,或 .zip文件)。Appium 将其安装到合适的设备上。如果指定了 appPackage 和appActivity 参数,Android 则不需要此参数了。该参数也与 browserName 不兼
容。
browserName:测试的web浏览器,如果是测app则忽略
newCommandTimeout :用于客户端在退出或者结束 session 之前,Appium 等待客户端发送一条新命令所花费的时间(秒为单位)
noReset:在当前session前不重置app状态,默认值为 false
fullReset:(iOS)删除所有的模拟器文件夹。(Android) 要清除 app 里的数据,请将应用卸载才能达到重置应用的效果。在 Android, 在 session 完成之后也会将应用卸载掉。默认值为 false
appPackage:运行的安卓应用包名
appActivity:Activity 的名字是指从你的包中所要启动的 Android acticity。通常需要再前面添加‘.’
unicodeKeyboard:使用 Unicode 输入法。 默认值为 false
resetKeyboard:在设定了 unicodeKeyboard 关键字的 Unicode 测试结束后,重置输入法到原有状态。如果单独使用,将会被忽略。默认值为 false
noSign:跳过检查和对应用进行 debug 签名的步骤。仅适用于 UiAutomator,不适用于 selendroid。 默认值为 false
示例:
from appium import webdriver
des = {
‘platformName‘: "Android",
‘platformVersion‘: ‘10‘,
‘deviceName‘: ‘Samsung Galaxy S10‘,
‘udid‘: "192.168.191.102:5555",
‘appPackage‘: "com.ibox.calculators",
‘appActivity‘: ".CalculatorActivity",
‘noReset‘: True,
‘UnicodeKeyboard‘: True,
‘resetKeyboard‘: True
}
driver = webdriver.Remote(‘http://localhost:4723/wd/hub‘, des)