airtest使用

airtest使用

 

airtest

Airtest是網易開發的手機UI界面自動化測試工具
經過截圖功能操做手機雖然方便,可是截圖涉及到分辨率的問題,代碼不能在不一樣的手機上通用。
能夠用來開發手機App爬蟲
使用先抓大再抓小的技巧,先把每一組結果的父節點抓下來,再到每一個結果裏面分別獲取子節點javascript

使用流程

  • 打開手機(或模擬器)的USB調試功能,並選用網易IDE提供的輸入APP後,使用adb 鏈接手機 參考http://airtest.netease.com/docs/cn/2_device_connection/3_emulator_connection.html
  • 利用airtest輔助窗 截屏定位,滑動等
  • 利用poco輔組窗 高級定位 (在下拉菜單中選Android開發環境,選鎖🔒後Airtest的屏幕被鎖定) 在左下UI結構圖中,點擊對應的節點,代碼中會自動添加定位信息
  • 在已鏈接的手機上方有一個phone assistant 能夠實現手機應用的安裝/卸載/列表查看;
    經常使用快捷操做:打開網址、輸入文本、切換輸入法、音量調節等;手機Shell調試窗口

基本操做

touch: 點擊屏幕元素
swipe: 滑動屏幕
exists: 判斷屏幕元素是否存在
text: 在輸入框中輸入文字
snashot: 截圖html

點自動錄製,能夠直接點以後完成代碼的生成java

poco(text="知乎").click()
poco(name="com.zhihu.android:id/input").set_text('古劍奇譚三')
poco(name='com.zhihu.android:id/magi_title', text='古劍奇譚(電視劇)').click()
poco(name='com.zhihu.android:id/magi_title')[1].click()
poco(name='com.zhihu.android:id/magi_title', textMatches='^古劍奇譚三.*$').click() #正則表達式
常見的基本上不會變化的屬性包含但不限於:name type resourceId packagepython

poco.swipe([0.5, 0.8], [0.5, 0.2])# poco.swipe(起點座標,終點左邊) 屏幕左上角爲(0, 0),屏幕右下角爲(1, 1)android

使用child只會在子節點中搜索須要的內容,而使用offspring會像文件夾遞歸同樣把裏面的全部節點都遍歷一次,直到找到符合條件的屬性爲止。正則表達式

安裝到python

  • pip install pocoui 安裝環境便可直接在python中調用poco等函數
  • pip install airtest
  • 若是adb無效,可能須要給adb賦予運行權限

控制多臺手機

adb devices -lspring

from airtest.core.api import auto_setup from airtest.core.android import Android from poco.drivers.android.uiautomation import AndroidUiautomationPoco auto_setup(__file__) device_1 = Android('76efadf3a7ce4') #最左邊的編號就是手機串號 device_2 = Android('adfasdfasf23') device_3 = Android('adifu39ernla') poco_1 = AndroidUiautomationPoco(device_1, use_airtest_input=True, screenshot_each_action=False) poco_2 = AndroidUiautomationPoco(device_2, use_airtest_input=True, screenshot_each_action=False) poco_3 = AndroidUiautomationPoco(device_3, use_airtest_input=True, screenshot_each_action=False)

airtest run untitled.air --device Android:///手機設備號 --log log/
python -m airtest run untitled.air --device Android:///手機設備號 --log log/api

全部的選項都勾選上以後鏈接的設備,用&&來鏈接多個參數字符串

Android://127.0.0.1:5037/79d03fa?cap_method=JAVACAP&&ori_method=ADBORI&&touch_method=ADBTOUCHmarkdown

a = connect_device("Android:///")函數

from poco.drivers.android.uiautomation import AndroidUiautomationPoco poco = AndroidUiautomationPoco() poco('android:id/title').click()
相關文章
相關標籤/搜索