基於appnium+python+夜神模擬器的自動化


首先搭好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")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM