1. 程式人生 > >appium安裝與簡單使用

appium安裝與簡單使用

imp anim iphone inf port elements version roi tomat

安裝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安裝與簡單使用