初學UI自動化的小夥伴,在配置好appium+python自動化環境後,每每不知道如何下手實現自動化。小編在初期學習的時候也有這種疑惑,在此以叮咚買菜app-搜索加車爲實例,展現下appium是如何實現自動化的。html
前提:已安裝配置好appium+python自動化環境python
1,鏈接手機web
-手機USB鏈接電腦app
-手機打開開發者模式、USB調試功能工具
2,基礎信息配置學習
基礎鏈接信息以下(以叮咚app爲例):ui
'platformName': 操做平臺
'deviceName': 設備名稱
'platformVersion':系統版本號
'appPackage': apk包名
'appActivity':apk activity
'noReset': 在此會話以前不要重置應用程序狀態,即非初始化。參數值:true, false
更多配置參數信息可參考:http://www.javashuo.com/article/p-zbkhfknm-ga.html
備註:獲取設備號/ app包名/activity詳情可查看 http://www.javashuo.com/article/p-mtmrfclz-hk.html編碼
3,啓動appium服務spa
1,啓動appium獲取appium服務地址3d
appium啓動頁獲取host和port,默認配置host:0.0.0.0,port:4723,
即默認appium服務地址爲:http://0.0.0.0:4723/wd/hub(若配置其餘host&port更新http://後內容爲host:port便可)
4,鏈接設備,啓動app
Remote括號中地址:appium服務地址(步驟3中獲取)
1,打開定位工具uiautomatorviewer,查看元素屬性
關於定位工具的可參考:http://www.javashuo.com/article/p-wxtjrgdg-hm.html
點擊Android adk->tools->automatorviewer
鼠標選中頁面元素,右下角查看元素屬性
2,定位元素
元素定位方法可參考:https://www.cnblogs.com/mini-monkey/articles/11836650.html、https://www.cnblogs.com/mini-monkey/articles/11836690.html
appium經常使用API可參考:https://www.cnblogs.com/mini-monkey/articles/11841354.html、https://www.cnblogs.com/mini-monkey/articles/11841370.html
通常元素id存在時,先根據id定位,其次是class,而後再是xpath、uiautomator等去定位。優先級不必定是這樣的,小編通常習慣這樣定位,你們能夠根據本身的喜愛選擇定位方式。
叮咚搜索商品加車過程以下:
首頁點擊搜索框->輸入搜索關鍵詞,點擊搜索btn->搜索結果頁,點擊加車btn->點擊購物車圖標(進入購物車頁)
實現搜索加車自動化即可根據以上步驟展開編寫,叮咚搜索商品加車腳本以下(以搜索雞翅爲例):
備註:因爲app有的頁面加載須要時間,可在須要等待的地方添加等待時間。
叮咚搜索加車的總代碼以下:
1 # 叮咚appium實例 2 from appium import webdriver 3 from time import sleep 4 5 # 基礎信息配置 6 desired_caps = { 7 'platformName': 'Android', # 平臺 8 'deviceName': 'emulator-5554', # 手機設備名稱 9 'platformVersion': '6.0.1', # 安卓系統版本號 10 'appPackage': 'com.yaya.zone', # apk包名 11 'appActivity': 'com.yaya.zone.activity.SplashActivity', # apk activity 12 'unicodeKeyboard': True, # 設置編碼格式爲unicode 13 'resetKeyboard': True, # 隱藏手機鍵盤 14 'noReset': True, # 非初始化 15 } 16 17 driver = webdriver.Remote('http://0.0.0.0:4723/wd/hub', desired_caps) # 啓動app 18 sleep(5) # 等待叮咚首頁加載【app加載頁面有時需加載一段時間,故可在須要加載等待的地方可加上等待時間】 19 20 driver.find_element_by_id("com.yaya.zone:id/ll_search").click() # 首頁-點擊搜索框 21 sleep(1) 22 driver.find_element_by_id("com.yaya.zone:id/et_what_search").send_keys("雞翅") # 輸入關鍵詞 23 sleep(1) 24 driver.find_element_by_id("com.yaya.zone:id/btn_cancel").click() # 點擊搜索btn 25 sleep(3) 26 driver.find_element_by_id("com.yaya.zone:id/iv_add_cart").click() # 搜索結果頁-點擊加車btn 27 sleep(1) 28 driver.find_element_by_id("com.yaya.zone:id/iv_cart").click() # 點擊購物車btn,進入購物車頁 29 sleep(3)