1、Desired Capabilitiesandroid
Desired Capabilities 在启动 session 的时候是必须提供的。ios
Desired Capabilities 本质上是以 key value 字典的方式存放,客户端将这些键值对发给服务端,告诉服务端咱们想要怎么测试。它告诉 appium Server这样一些事情:git
本次测试是启动浏览器仍是启动移动设备。github
是启动Andorid仍是启动iOS。web
启动Android时,app的package是什么。浏览器
启动Android时,app的activity是什么。session
…app
固定写法参考以下:框架
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.4.2'
desired_caps['deviceName'] = '127.0.0.1:62001'
desired_caps['appPackage'] = 'com.tencent.mobileqq'
desired_caps['appActivity'] = 'com.tencent.mobileqq.activity.SplashActivity' # android 独有
desired_caps["unicodeKeyboard"] = "True"
desired_caps["resetKeyboard"] = "True"
desired_caps["noReset"] = "True"
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
deviceName:启动哪一种设备,是真机仍是模拟器?iPhone Simulator,iPad Simulator,iPhone Retina 4-inch,Android Emulator,Galaxy S4…ide
automationName:使用哪一种自动化引擎。appium(默认)仍是Selendroid。
platformName:使用哪一种移动平台。iOS, Android, orFirefoxOS。
platformVersion:指定平台的系统版本。例如指的Android平台,版本为5.1。
appActivity:待测试的app的Activity名字。好比MainActivity、.Settings。注意,原生app的话要在activity前加个”.“。
appPackage:待测试的app的Java package。好比com.example.android.myApp, com.android.settings。
unicodeKeyboard
capability. Ignored if used alone. Default false
false
/127.0.0.1:4723 : appium-server 地址
更多的参数配置:https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
知识拓展:定位appPackage与appActivity 方法
SDK中下载最新的build-tools,经过aapt dump badging xxx.apk命令来查appPackage与appActivity。
CMD下输入adb logcat | findstr /i Start,强制中止被测试软件,再次打开,观察logcat。(手动打开须要操做的appPackage ,从logcat 最下面开始找)
2、定位控件
appium 经过 uiautomatorviewer.bat 工具来查看控件的属性。该工具位于 Android SDK 的 /tools/bin/ 目录下。
一、id 定位
driver.find_element_by_id('resource-id')
# ID定位于selenium不一样,可能存在重复的问题。
# appium-desktop抓取元素时若是出现有id,则能够直接用。