Airtest 基于图像识别的操作(2)

  这节内容主要介绍设备相关操作、滑动下拉选项的操作技巧;
  swipe_along():自定义滑动;比如:连续滑动多个点;

dev = device()  # 获取当前手机设备
dev.swipe_along([(100, 100), (200, 200), (300, 300)])  # 手指按照顺序依次滑过3个坐标

  长按删除:主要用于删除App应用;

dev = device()
# 长按删除应用
long_event = [
    DownEvent([908, 892]),# 待删除应用的坐标
    SleepEvent(2),
    MoveEvent([165,285]),# 删除应用的垃圾桶坐标
    UpEvent(0)]

dev.touch_proxy.perform(long_event)

  install(filepath,**kwargs):安装App;

filepathApp安装包路径;
install(r"D:\demo\test.apk")
# adb install -r -t D:\demo\test.apk
install(r"D:\demo\test.apk", install_options=["-r", "-t"])

  uninstall(package):卸载App应用;

packageApp包名;
uninstall("com.xxx.xxx")

  clear_app(package):清理App应用数据;

package要启动的App包名;
activity需要启动的activity,默认为None,就是 main activity;

  stop_app(package):终止App应用;

stop_app("com.xxx.xxx")

  shell(cmd):在目标设备上执行 shell 指令,比如上篇提到的使用 shell 命令输入内容;适用于一些特殊的需求;

cmdshell指令:比如 input text xxx;ls /data/;
shell("input text 'xxxxx'")
shell("ls")

  device():返回当前正在使用的设备,返回一个设备的实例;

dev = device()

  set_current(index):切换当前设备,如果连接有多台设备;

indexuuid 或 已初始化的设备列表中的编号,从0开始;
set_current(1)
set_current("serialno2")

  connect_device(uri):初始化设备,并设置为当前设备;返回一个 device 对象;有多种连接方式,参考下面:

connect_device("Android:///")  # 什么都不填写,默认取当前链接中的第一台手机;
connect_device("Android://127.0.0.1:5037/79d03fa")  # 连接本机默认端口的 79d03fa 手机;
connect_device("Android://127.0.0.1:5037/10.254.60.1:5555")  # 链接一台 adb connect 过的远程设备;
connect_device("Android:///79d03fa?cap_method=javacap&touch_method=adb")

connect_device("iOS:///127.0.0.1:8100")  # 连接本地部署的 ios 真机
connect_device("iOS:///http://localhost:8100/?mjpeg_port=9100")
connect_device("iOS:///http://localhost:8100/?mjpeg_port=9100&&udid=00008020-001270842E88002E")

  auto_setup(basedir=None,devices=None,logdir=None,project_root=None,compress=None):初始化设备,自动配置运行环境,一般新建文件时会自动生成;这些参数可以根据自己的需要添加,参数详情如下:

basedir设置当前脚本路径,也可以直接传 file 变量;
devicesconnect_device uri 字符串列表;
logdir脚本运行时log保存路径,默认值为Noe,不保存log;如果设置为True,自动保存在 /log目录中;
project_root设置项目根目录变量 PROJECT_ROOT,就是方便在脚本中通过 using(“xxx.air”) 引用其他公共脚本;
compress屏幕截图的压缩比例,在[1,99]范围内的整数,默认是10;
auto_setup(__file__)  #新建脚本默认的配置
auto_setup(__file__, devices=["Android://127.0.0.1:5037/79d03fa"],logdir=True, project_root=r"D:\test\wxchat", compress=90)

  init_device(platform=‘’,uuid=None,**kwargs):初始化设备,并设置为当前设备;返回 device 对象;

platformandroid,ios,windows
uuid目标设备序列号/窗口句柄/uuid;
kwargs可选参数,如:cap_method=JAVACAP;
init_device(platform="Android",uuid="SJE5T17B17", cap_method="JAVACAP")

  关于工作中的下拉选项的使用技巧
  单个下拉选项

  1. 先判断目标是否存在,不存在,借助 swipe、while 循环滑动,直到目标匹配到;
  2. 如果目标有相似的值,调大图片识别阈值 threshold(上篇有介绍过,可以参考Airtest 基于图像识别的操作(1)),下图的 MG7 与 MG6 很像,每次都选中MG6,而我想选中MG7,将默认阈值是 0.7 改成 0.9 完美选中 MG7;
    在这里插入图片描述
      三联动下拉选项
  3. 先判断目标是否存在,不存在,借助 swipe、while 循环滑动,直到目标匹配;
  4. 每个选项,按照屏幕中的占比(不要写死坐标,否则存在兼容性问题),进行滑动;将屏幕纵向划3条线,分成4份,或者开启手机指针位置,这条线的占比就是滑动的位置;
  5. 本质方法与上面一样,就是滑动位置的选择,大概是每个选项的中间位置;
    省在最左边,大概占屏幕0.25的位置,市在屏幕中间,位置就是0.5
    区市在最右边,大概就是屏幕的0.75位置
    最后的选择效果  到这里,Airtest 基于图像识别的内容差不多讲完,这些都是比较常见的,还有一些拓展的,由于暂时没有用到,就没有列出来,如果大家有需要,也可以参考官网。一个人跑得快,但一群人能走的更远,欢迎各位测试小伙伴继续关注、交流!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值