airtest使用

airtest

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

使用流程

  • 打開手機(或模擬器)的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: 截圖python

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

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 package正則表達式

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

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

安裝到python

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

控制多臺手機

adb devices -l函數

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/工具

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

Android://127.0.0.1:5037/79d03fa?cap_method=JAVACAP&&ori_method=ADBORI&&touch_method=ADBTOUCH測試

a = connect_device("Android:///")ui

from poco.drivers.android.uiautomation import AndroidUiautomationPoco

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