Airtest:Windows桌面应用自动化测试三【Airtest脚本的点击位置与点击偏移】

news/2024/11/24 23:02:07/

Airtest脚本的点击位置与点击偏移

  • 1. 前言
  • 2. Airtest的点击位置
  • 3.Airtest的点击偏移
    • 图像点击偏移,常用于下述场景中:
      • 3.1、一个是,当我们的页面中,存在很多个相同的图标,我们想指定点击某个位置的图标,就有可能用到 target_pos 的参数,举个例子,在下述的页面中,有3个相同的播放按钮:
      • 3.2、另外一个常用的场景是,当我们的点击图片特征点太少时,可以适当增加截图范围,然后通过设置 target_pos ,来点到我们的目标位置。
  • 4. 拓展:Airtest的其它点击参数

1. 前言

经常会提到:这个图片脚本怎么没有点击效果?为什么脚本会点偏了?我想点图片的其它位置可以吗?诸如此类的问题。

今天就来跟同学们详细聊一聊,Airtest的点击位置与点击偏移这块内容,看完之后,遇到类似上面的问题,我们都可以迎刃而解啦。

2. Airtest的点击位置

用一个最简单的图像点击脚本来作为示例:
在这里插入图片描述
执行这条图像脚本,会点在哪个位置呢?熟悉Airtest的同学都会知道,是图片的中心位置。那我们如何哪些地方知道这条脚本实际的点击效果呢?教大家几个小技巧。

一个是在手机的设置里面打开“显示触摸操作”,这样我们在IDE运行图像脚本的时候,可以清楚地在手机画面上看到点击位置:
在这里插入图片描述
在这里插入图片描述
所以在遇到,脚本执行了,但是没有点击效果的时候,不妨打开手机设置,启用“显示触摸操作”,看下究竟是脚本执行了无响应?还是脚本真的没有执行这个点击动作。

另外一个方式是,在IDE的log查看窗里,查看图像算法给出的识别结果(找带有关键词 match result 的 debug 信息):

[15:17:32][DEBUG]<airtest.core.api> match result: {'result': (439, 348), 'rectangle': ((370.76, 265.76), (370.76, 431.76), (508.76, 431.76), (508.76, 265.76)), 'confidence': 0.975566565990448, 'time': 0.3353738784790039}

可以看到,图像算法给出的识别结果是(439, 348),我们可以借助IDE查看移动设备坐标的小工具,来检查下这个结果是否是符合我们预期的结果:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这个方式的好处就是,有时候我们发现,脚本的实际点击位置,偏离了我们的预期,我们就可以到log查看窗里,找到算法识别出来的结果,用坐标工具去设备画面上核对算法结果是否符合我们的预期,是不是真的找偏了。

还有个很直观的方式,就是生成Airtest报告来查看,可以非常直观的看到点击步骤的执行情况,在画面上的具体点击位置等:

在这里插入图片描述

3.Airtest的点击偏移

默认情况下,Airtest都是点击图像的中心位置的,也就是 target_pos=5 的位置。如果想要做点击偏移,比如我就要点击图片的左上角位置,那就要先好好了解这个 target_pos 是个什么参数了:
在这里插入图片描述
如图所示,target_pos 用于设置在匹配结果图像上的操作位置,取值为1-9的整数,默认为5(即图像中心位置)。如果我们要点击图像左上角的位置,那我们必须手动指定 target_pos=1:

touch(Template(r"tpl1658387780768.png", target_pos=1, record_pos=(0.108, -0.517), resolution=(720, 1440)))

图像点击偏移,常用于下述场景中:

3.1、一个是,当我们的页面中,存在很多个相同的图标,我们想指定点击某个位置的图标,就有可能用到 target_pos 的参数,举个例子,在下述的页面中,有3个相同的播放按钮:

在这里插入图片描述
如果我们想点击第一个播放按钮,但是仅仅截图图片,是无法保证一定可以点到第一个播放按钮的。

但是如果我们扩大截图范围,并且通过指定 target_pos ,就可以确保我们能点到第一个目标按钮:
在这里插入图片描述
在这里插入图片描述

3.2、另外一个常用的场景是,当我们的点击图片特征点太少时,可以适当增加截图范围,然后通过设置 target_pos ,来点到我们的目标位置。

在这里插入图片描述
假设我们想点击上图黄框内的button,如果我们仅仅截图目标图像 ,可以预想的到,目标图像底色一致,基本没有变化,里面也仅有简单的线条,这样的图像脚本,很容易被算法判定为特征点过少,或者是识别到了错误的目标上去。

当我们扩大截图范围,给截图增加更多的特征点,并且适当地设置 target_pos ,就能得到一个兼容性效果更好的图像脚本了:
在这里插入图片描述

4. 拓展:Airtest的其它点击参数

# 点击绝对坐标
touch([100,100])# 点击图片的右下角位置
touch(Template(r"tpl1606730579419.png", target_pos=9))# 点击2次【不一定能实现双击的效果】
touch([100, 100], times=2)# 在Android和Windows下,可以设置点击持续时间
touch([100, 100], duration=2)# 右键点击(Windows)
touch([100, 100], right_click=True)# 双击
double_click([100, 100])
double_click(Template(r"tpl1606730579419.png"))

http://www.ppmy.cn/news/682387.html

相关文章

stm32 + w25qxx + EasyFlash

一&#xff0c;软件介绍 EasyFlash 是一款开源的轻量级嵌入式Flash存储器库&#xff0c;方便实现基于Flash存储器的常见应用开发。适合智能家居、可穿戴、工控、医疗等需要断电存储功能的产品&#xff0c;资源占用低&#xff0c;支持各种 MCU 片上存储器。 [1] 该库目前提供…

电脑手机桌面记事用什么?

我的闺蜜徐微现在使用的是华为手机&#xff0c;她之前也使用过苹果手机&#xff0c;徐微表示现在国产手机的进步是越来越大了&#xff0c;不过在软件优化、使用体验等方面还是需要继续进步的。就拿华为手机的备忘录记事本来说&#xff0c;虽然是可以支持记事和待办提醒&#xf…

程序员效率:整理常用的在线笔记软件

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

怎么把荣耀8x的手机备忘录导到电脑里?

怎么把荣耀8x的手机备忘录导出到电脑里&#xff1f; 当然是华为云服务空间了。 荣耀品牌手机是华为终端主攻互联网手机业务的全资子品牌&#xff0c;因此&#xff0c;荣耀手机可以登录华为的云服务空间&#xff0c;而备忘录可以和图库、录音、联系人一样直接同步到云端&#xf…

在安卓手机便签中怎么设置指定日期提醒的闹钟?

有不少安卓手机用户使用闹钟的频率是比较高的&#xff0c;因为我们可以在闹钟里设置提醒时间&#xff0c;这样到指定时间收到提醒后&#xff0c;就不会忘记要做的事情了&#xff0c;例如早起提醒、上班打卡提醒等。但是我们生活或工作中遇到的一些待办事项并不一定是今天需要完…

支持跨平台可放置在桌面的便签软件

伴随着科技的不断发展&#xff0c;人们工作中需求的工具软件也是越来越多了&#xff0c;比如便签就是大家日常工作中常用的软件&#xff0c;使用便签可以记录工作中很多的待办备忘事项&#xff0c;帮助大家安排好工作中的各项待办任务。为方便大家在不同的场景下使用便签软件&a…

手机锁屏时有便签提示提醒就会亮屏怎么办

手机上可以安装使用敬业签云便签&#xff0c;支持在安卓、鸿蒙和苹果等不同系统的手机上通用。手机云便签支持提醒功能&#xff0c;并且可以通过锁屏弹窗的方式发送提醒通知&#xff0c;有的手机锁屏时有便签提示提醒就会亮屏怎么办&#xff1f;如何关闭手机便签锁屏提醒时自动…

怎么在安卓手机上找到记事本或便签?

以前大家记事的时候&#xff0c;使用纸质的记事本是比较常见的&#xff0c;但是随着科技的发展&#xff0c;现在越来越多的人选择使用手机记事本软件来记事。因为与传统的纸质记事本相比&#xff0c;电子记事类软件有随时记录、方便修改、快速删除、安全保存、一键分享等优势。…