一個好用的移動端自動化框架-uiautomator2

簡介:python

  uiautomator2 是一個可使用Python對Android設備進行UI自動化的庫。其底層基於Google uiautomator,Google提供的uiautomator庫能夠獲取屏幕上任意一個APP的任意一個控件屬性,並對其進行任意操做android

優缺點:
  優勢:app

    一、環境搭建簡單學習

    二、元素查找有專用的weditor,相比其餘簡單明瞭ui

    三、代碼語法簡單,容易學習理解spa

    四、相比appium不用啓動客戶端調試

    五、可使用wifi以及usb鏈接code

  缺點:xml

    一、兼容性相對較差blog

    二、功能相比appium較缺乏

    三、設備上面必須安裝一些調試app,新設備就必須去鏈接usb而後去init安裝,比較不省心

 

安裝,安裝這一塊就很少bb了:

  裝一下uiautomator2的包

  pip3 install --pre -U uiautomator2

  usb鏈接手機裝一下依賴的包:

  python3 -m uiautomator2 init

 

裝完以後,開始啓動擼碼

import uiautomator2 ## wifil鏈接
d = uiautomator2.connect_wifi() ## 直接鏈接
d1 = uiautomator2.connect() ## usb鏈接
d2 = uiautomator2.connect_usb() ## adb、wifi鏈接
d3 = uiautomator2.connect_adb_wifi()

這些就是直接啓動,而後就能夠直接開始android的ui自動化了

下面附一些基礎語法

ResourceId定位: d(resourceId="com.meizu.mzbbs:id/tp").click() Text定位: d(text="精選").click() Description定位: d(description="..").click() ClassName定位: d(className="android.widget.TextView").click() import uiautomator2 as u2 from time import sleep ##使用本地wifi地址
d = u2.connect('192.168.31.234') ##等待元素出現 # d(text='settings').wait(timeout=10.0)

##使用設備id控制 # d = u2.connect_usb('設備id')

# 啓動App
d.app_start("com.meizu.mzbbs") # 搜索
d(resourceId="com.meizu.mzbbs:id/j0").click() # 中止app
d.app_stop("com.meizu.mzbbs") 中文字符的輸入 若是能夠定位到元素,直接經過set_text就能夠輸入中文 d(text="Settings").set_text("你好") 若是定位不到元素須要使用send_keys方法,以及切換輸入法 d.set_fastinput_ime(True) d.send_keys("你好 Hello") d.set_fastinput_ime(False) # 輸入法用完關掉
 截圖:d.screenshot("home.jpg") 獲取圖層信息:xml = d.dump_hierarchy() ## 按住滑動
u.swipe_points([(0.235, 0.456), (0.503, 0.449), (0.509, 0.601), (0.777, 0.603), (0.771, 0.763), (0.222, 0.75)], 0.2)
相關文章
相關標籤/搜索