Appium之Python運行環境搭建 Part2html
by:授客 QQ:1033553122python
實踐環境android
參見 Appium之Python運行環境搭建 Part1ios
環境部署git
一、安裝Android SDKgithub
安裝好後,配置ANDROID_HOME環境變量,設置爲Android SDK安裝路徑(例中:D:\Program Files (x86)\Android\android-sdk)web
二、安裝其它SDK相關軟件包npm
安裝好Android SDK後,選擇打開Android SDK Manager(在Android SDK目錄下,例中D:\Program Files (x86)\Android\android-sdk)app
選好後點擊 接受協議Accept License,Install測試
參考連接:
https://www.zhihu.com/question/31935836
http://www.cnblogs.com/kangjianwei101/p/5621238.html
三、安裝appium-uiautomator2-driver
cmd打開控制檯,輸入如下命令安裝
> npm install -g appium-uiautomator2-driver
參考連接:
http://appium.io/docs/en/drivers/android-uiautomator2/index.html
https://github.com/appium/appium-uiautomator2-driver
四、開啓appium、appium-desktop(若是沒有開啓的話)
其它準備工做
開啓手機(模擬器)USB調試模式
打開目標程序主頁,好比圖示計算機
獲取APK包名及資源定位器
雙擊打開android_sdk_install_home\tools\uiautomatorviewer.bat
(例中:D:\Program Files (x86)\Android\android-sdk\tools\uiautomatorviewer.bat
點選圖示圈選按鈕中任何一個
如上圖,鼠標移動到目標控件,好比數字按鈕7,可看到程序所在包名:package 爲com.android.calculator2,數字按鈕7對應資源IDpackage 爲com.android.calculator2:id/digit_7
活動名稱獲取
經過adb logcat > log.txt 獲取的
代碼測試
#!/usr/bin/env python
# -*- encoding:utf-8 -*-
__author__ = 'laifuyu'
import time
from appium import webdriver
if __name__ == '__main__':
desired_caps = {
"platformName":"Android",
"platformVersion":"5.0",
"deviceName":"Android Emulator",
"automationName":"UiAutomator2",
# "app":"D:\\apks\\ai-sorting_v3.5.5_sit_debug_20180423114313.apk",
"appPackage":"com.android.calculator2",
"appActivity":".Calculator"
}
driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)
digit7 = driver.find_element_by_id('com.android.calculator2:id/digit_7')
digit7.click()
result = driver.find_element_by_id('com.android.calculator2:id/result')
result.send_keys('+')
time.sleep(30)
driver.quit()
運行結果:
說明:
platformName 設置手機操做系統平臺(iOS, Android, FirefoxOS)
platformVersion 設置手機操做系統版本
deviceName 設置手機設備、模擬器類型。好比iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4, 等,IOS操做系統上,該設備名必須是經過instruments -s devices命令返回的合法設備。對於Android操做系統來講,該屬性雖然是必填,可是缺是被忽視的。
automationName 設置使用哪一個自動化引擎。對於Android:Appium(默認)、Selendroid 、UiAutomator2 、對於IOS:XCUITest
app:設置apk軟件包的絕對路徑,或者.ipa ios包的http url,或者是一個包含一個.ipa、.apk軟件包的.zip文件絕對路徑。注意,彷佛是這樣的,若是手機設備、手機模擬器上沒安裝該軟件包,則可設置該屬性,運行時,會自動把該安裝包安裝到手機設備、模擬器上。 Appium會先嚐試把這個app二進制文件安裝到手機設備或者模擬器中。 注意,若是指定了appPackage和appActivity屬性,則該能夠不設置該屬性。
eg:
/abs/path/to/my.apk
http://myapp.com/app.ipa
appPackage:設置Android app JAVA軟件包
appActivity:想啓動的Android activity名稱。一般須要加前綴. 好比.MainActivity而不是MainActivity。
eg:
MainActivity
.Settings
參考連接:
https://github.com/appium/appium-uiautomator2-driver/blob/master/README.md
https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
https://github.com/appium/sample-code/blob/master/sample-code/examples/python/android_contacts.py