首先搭好appnium環境!參考https://www.cnblogs.com/testlearn/p/11419797.html
1、安裝夜神模擬器
下載安裝夜神模擬器后,在cmd命令輸入adb connect 127.0.0.1:62001,顯示出設備則表示連接成功
2、定位元素
打開安卓目錄下,...\sdk\tools目錄下面的uiautomatorviewer.bat文件;
打開 uiautomatorviewer 時若報錯:Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't exist!
重新執行第1步即可
如上,左上角圖標應該就是獲取手機上當前頁面的“元素”/app的信息,這兩個屬性 resource-id和class就是他對應的屬性,可以通過這些屬性來定位元素。
package為當前啟動應用的包名,獲取包名的另一種方式為:在CMD命令行輸入adb shell 進入adb命令行模式
在adb命令行輸入:logcat | grep ActivityManager ;再啟動應用,找到關鍵字Displayed,關鍵字后面即為appPackage + appActivity
3、開始編碼
# coding=utf-8 from appium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # appium服務監聽地址 server = 'http://localhost:4723/wd/hub' # localhost為本機;4723為端口;/wd/hub可以看成是規定的默認地址 # app啟動參數 desired_caps = { "platformName": "Android", # platformName:使用哪個移動操作系統平台;iOS,Android或FirefoxOS "deviceName": "127.0.0.1:62001", # deviceName:使用的移動設備或模擬器的種類 "appPackage": "com.tencent.mm", # appPackage:你想運行的Android應用程序的Java包(僅限Android使用) "appActivity": ".ui.LauncherUI" # 要從包中啟動的Android活動的活動名稱。(僅限Android使用) } # 驅動 driver = webdriver.Remote(server, desired_caps) wait = WebDriverWait(driver, 30) # 獲取登錄按鈕 login_btn = wait.until(EC.presence_of_element_located((By.ID, "com.tencent.mm:id/edu"))) # 點擊登錄按鈕 login_btn.click() # 獲取手機號文本框 phone_text = wait.until(EC.presence_of_element_located((By.ID, "com.tencent.mm:id/li"))) # 填寫手機號文本框 phone_text.send_keys("12345678900")