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,則能夠直接用。