前言
初學UI自動化的小伙伴,在配置好appium+python自動化環境后,往往不知道如何下手實現自動化。小編在初期學習的時候也有這種疑惑,在此以叮咚買菜app-搜索加車為實例,展示下appium是如何實現自動化的。
前提:已安裝配置好appium+python自動化環境
一、連接手機啟動app
1,連接手機
-手機USB連接電腦
-手機打開開發者模式、USB調試功能
2,基礎信息配置
基礎連接信息如下(以叮咚app為例):
'platformName': 操作平台
'deviceName': 設備名稱
'platformVersion':系統版本號
'appPackage': apk包名
'appActivity':apk activity
'noReset': 在此會話之前不要重置應用程序狀態,即非初始化。參數值:true, false
更多配置參數信息可參考:https://www.cnblogs.com/D666/p/9165086.html
備注:獲取設備號/ app包名/activity詳情可查看 https://www.cnblogs.com/mini-monkey/p/11691862.html
3,啟動appium服務
1,啟動appium獲取appium服務地址
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,查看元素屬性
關於定位工具的可參考:https://www.cnblogs.com/mini-monkey/p/11819549.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)