appium安裝與簡單使用
安裝appium client:
cmd下輸入命令:pip install Appium-Python-Client
pycharm下一個簡單的實例,通過appium驅動android模擬器->打開計算器->計算5+6=?->關閉計算器
from appium import webdriver
desired_caps = {}
desired_caps[‘platformName‘] = ‘Android‘
desired_caps[‘platformVersion‘] = ‘6.0‘
desired_caps[‘deviceName‘] = ‘Android Emulator‘
desired_caps[‘appPackage‘] = ‘com.android.deskclock‘
desired_caps[‘appActivity‘] = ‘.DeskClock‘
driver = webdriver.Remote(‘http://localhost:4723/wd/hub‘, desired_caps)#啟動app
driver.find_element_by_name("5").click()
driver.find_element_by_name("+").click()
driver.find_element_by_name("6").click()
driver.find_element_by_name("=").click()
driver.quit()
webdriver.Remote實際上就是原生webdriver的子類,另外Remote()構造函數的第一個參數中需要顯示指定appium server監聽的端口
platformName:使用哪種移動平臺。iOS, Android, or FirefoxOS
deviceName:啟動哪種設備,是真機還是模擬器?iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4, etc…
appActivity:待測試的app的Activity名字。比如MainActivity, .Settings。註意,原生app的話要在activity前加個”.“。
appPackage:待測試的app的java package。比如com.example.android.myApp, com.android.settings。
其他:
app:應用的絕對路徑,註意一定是絕對路徑。如果指定了appPackage和appActivity的話,這個屬性是可以不設置的。另外這個屬性和browserName屬性是沖突的。
browserName:移動瀏覽器的名稱。比如Safari’ for iOS and ‘Chrome’, ‘Chromium’, or ‘Browser’ for Android;與app屬性互斥。
udid:物理機的id。比如1ae203187fc012g
monitor.bat:
該文件位於your_andriod_sdk_path\tools下面,可以幫我們找到android控件的content-description,為以後的find_element_by_accessibility_id 定位方法做參數使用
uiautomatorviewer.bat:
該文件位於your_andriod_sdk_path\tools下面
該工具主要用來查看控件的屬性,比如resource id,class name等。
該工具也可查看被測app的appPackage(Desired Capabilities中使用)
查找appActivity和appPackage:
a、啟動待測apk
b、開啟日誌輸出:adb logcat>D:/log.txt
c、關閉日誌輸出:ctrl+c
d、查看日誌
找尋:
Displayed com.mm.android.hsy/.ui.LoginActivity: +3s859ms
appPackage = com.mm.android.hsy
appActivity = .ui.LoginActivity
python篇
el = self.driver.find_element_by_android_uiautomator(‘new UiSelector().description("Animation")‘)
self.assertIsNotNone(el)
els = self.driver.find_elements_by_android_uiautomator(‘new UiSelector().clickable(true)‘)
self.assertIsInstance(els, list)
el = self.driver.find_element_by_accessibility_id(‘Animation‘)
self.assertIsNotNone(el)
els = self.driver.find_elements_by_accessibility_id(‘Animation‘)
self.assertIsInstance(els, list)
總的來說就是在driver裏增加了
find_element_by_accessibility_id
find_elements_by_accessibility_id
find_element_by_android_uiautomator
find_element_by_android_uiautomator
等方法
Appium連接真機
1)打開手機的USB調試模式
不同的手機打開調試模式的方式不同。一般都在設置中的開發者模式中打開
2)手機連接電腦
使用數據線連接手機與電腦,然後在cmd中輸入adb devices查看是否連接成功
新手可能會出現兩個問題
一是輸入adb命令時提示不是內部命令或者外部命令
那麽你需要下載一個adb工具包並存放在C:\Windows\System32目錄下(必須強調:與sdk中的adb工具包版本一致!!!!)
二是需要打開手機的usb調試模式並安裝好驅動
之後在cmd中輸入adb devices 提示如下圖則成功
3)啟動appium服務
在cmd命令中輸入:appium
啟動成功
或者appium上配置:
安裝好django,版本1.9,使用pip install django==1.9命令安裝即可
appium安裝與簡單使用