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()
相关文章
相关标签/搜索