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

简介: Airtest脚本的点击位置与点击偏移

此文章来源于项目官方公众号:“AirtestProject”

版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

1. 前言

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

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

2. Airtest的点击位置

用一个最简单的图像点击脚本来作为示例:

image.png

执行这条图像脚本,会点在哪个位置呢?熟悉Airtest的同学都会知道,是图片的中心位置。那我们如何哪些地方知道这条脚本实际的点击效果呢?教大家几个小技巧。

一个是在手机的设置里面打开“显示触摸操作”,这样我们在IDE运行图像脚本的时候,可以清楚地在手机画面上看到点击位置:

image.png

所以在同学们遇到,脚本执行了,但是没有点击效果的时候,不妨打开手机设置,启用“显示触摸操作”,看下究竟是脚本执行了无响应?还是脚本真的没有执行这个点击动作。

另外一个方式是,在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 是个什么参数了:

image.png

如图所示,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)))

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

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

image.png

如果我们想点击第一个播放按钮,但是仅仅截图,是无法保证一定可以点到第一个播放按钮的。

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

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

image.png

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

image.png 当我们扩大截图范围,给截图增加更多的特征点,并且适当地设置 target_pos ,就能得到一个兼容性效果更好的图像脚本了:

image.png

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"))

5. 小结

今天我们聊了Airtest图像脚本的点击位置与点击偏移,其实,Poco控件脚本也存在类似的情况,我们下期再继续讨论。


AirtestIDE下载:airtest.netease.com/

Airtest 教程官网:airtest.doc.io.netease.com/

搭建企业私有云服务:airlab.163.com/b2b


相关文章
|
JavaScript 前端开发 API
从架构到API,你真的掌握了Electron的全貌吗?
本文首发于微信公众号“前端徐徐”。作者徐徐从架构层面、协作方式、底层支持、源码层面及API设计等方面剖析了Electron的原理。通过分析Electron的核心组件(Chromium和Node.js)、进程隔离、上下文桥接及IPC机制等内容,揭示了Electron在设计上的精妙之处及其对开发高效、稳定桌面应用的重要性。了解这些原理有助于开发者更好地设计和解决问题。
1590 2
从架构到API,你真的掌握了Electron的全貌吗?
|
缓存 监控 Java
【Elasticsearch专栏 09】深入探索:Elasticsearch如何处理并发写入和读取请求
Elasticsearch通过分片机制分散读写请求,利用事务日志确保数据持久性,通过多线程处理并发请求,并允许通过配置调整分片和副本数量、线程池设置来优化并发性能。同时,使用批量操作和查询优化进一步提高写入和读取效率。
617 0
|
10月前
|
人工智能 安全 数据可视化
2025年大型企业BI工具选型指南:10款主流产品深度解析
2025年大型企业BI选型需聚焦生态适配与场景落地。本指南深度解析10款主流工具,涵盖瓴羊Quick BI、Tableau、Power BI等,覆盖制造、零售、金融等行业需求,助力企业实现数据驱动决策。
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
AI Compass前沿速览:Gemini 3、Grok 4.1、GPT-5.1、千问、Lumine-3D开世界AI智能体
AI Compass前沿速览:Gemini 3、Grok 4.1、GPT-5.1、千问、Lumine-3D开世界AI智能体
|
测试技术 开发工具 iOS开发
iOS自动化测试方案(三):WDA+iOS自动化测试解决方案
这篇文章是iOS自动化测试方案的第三部分,介绍了在没有MacOS系统条件下,如何使用WDA(WebDriverAgent)结合Python客户端库facebook-wda和tidevice工具,在Windows系统上实现iOS应用的自动化测试,包括环境准备、问题解决和扩展应用的详细步骤。
4855 1
iOS自动化测试方案(三):WDA+iOS自动化测试解决方案
|
网络安全 网络架构
公网IP与内网穿透与端口映射区别
公网IP(Public IP) 公网IP是全球互联网上可路由的IP地址,用于标识网络中的设备。这些IP地址是全球唯一的,可以用来访问互联网上的资源。 公网IP通常由互联网服务提供商(ISP)分配给网络中的设备,例如家庭路由器、服务器或计算机。 公网IP是公开可访问的,因此可以用来托管服务器、提供网络服务,或者访问互联网上的资源。
1223 5
|
小程序 开发工具 开发者
入职必会-开发环境搭建31-微信开发者工具下载和安装
微信开发者工具是一款由微信官方推出的开发工具,旨在帮助开发者更高效地进行微信小程序和微信公众号的开发与调试。该工具集成了代码编辑、代码上传、实时预览、调试等功能,能够提供便捷的开发环境和调试工具,帮助开发者快速定位和解决问题。
5390 0
|
人工智能 弹性计算 Cloud Native
平头哥杨平超:倚天CPU架构以及产品特性介绍
2023年8月8日,【倚天实例迁移课程】首节课程《倚天CPU架构以及产品特性介绍》正式上线,由平头哥倚天解决方案架构师杨平超主讲,内容涵盖:倚天710芯片概述;倚天710的主要特点;倚天710应用落地介绍,本期节目也在阿里云官网、阿里云微信视频号、阿里云钉钉视频号、InfoQ官网、阿里云开发者微信视频号、阿里云创新中心直播平台&微信视频号同步播出。
平头哥杨平超:倚天CPU架构以及产品特性介绍
|
运维 容灾 关系型数据库
MySQL高可用方案--Xenon全解
MySQL高可用方案--Xenon全解
|
Windows
Multisim 14简易三人抢答器电路设计
Multisim 14简易三人抢答器电路设计
1890 1

热门文章

最新文章