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

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

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

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

1. 前言

上一期我们讲了 Airtest的点击位置与点击偏移,这期我们继续讲一下poco的点击位置与点击偏移。

2. Poco的点击位置

1)打开手机的显示触摸操作

以一个简单的Poco点击脚本为例:

poco(text="网易云音乐").click()

执行这条Poco脚本,会点在哪个位置上呢?同Airtest,我们可以在手机设置里面打开诸如“显示触摸操作”、“显示指针位置”的设置:

image.png

这样我们在运行脚本过程中,会非常清晰地看到点击位置的情况,有助于我们调试和优化脚本:

2)借助AirtestIDE的控件检索工具

除此之外,我们还可以借助AirtestIDE的poco检索工具,来查看控件的具体点击位置,还是以手机桌面的网易云音乐APP控件为例:

image.png

这里有2个属性需要我们注意的,一个是控件的 pos 属性,这个属性表示控件的点击位置,是一个相对坐标(Poco使用相对坐标系),通过这个属性,我们可以知道该控件在手机画面上的相对坐标,也就是执行控件点击时,点的相对坐标。

我们可以在IDE的选项设置中,同时勾选 实时坐标显示相对坐标 ,然后把鼠标移动到手机画面上查看控件对应的相对坐标:

image.png

另外一个值得关注的属性是 anchorPoint ,这个表示控件的锚点,目前执行Poco的点击操作时,就是点击的控件的锚点位置,[0.5,0.5]表示控件的锚点位于控件的中心点:

image.png

特别需要注意的是, 有些控件,也特别是部分游戏控件,锚点属性并不是[0.5,0.5],有的是[0,0],表示该控件的锚点在控件的左上角 ,依照现在Poco的点击规则,会点击在控件左上角的位置上,很大可能并不会触发有效的控件点击(意思是,点了个寂寞...)。

那这种情况我们该如何处理呢?不着急,等会往下看Poco的点击偏移就可以解决了! (另外,该问题我们在下一个版本中也会修复,同学们可以期待下~)

3)借助运行报告

除了借助IDE的poco控件检索工具,我们还可以直接生成一份运行报告,来查看具体的点击情况:

image.png

3. Poco的点击偏移

刚才有提到,当控件的 anchorPoint 属性是[0,0],按照现在Poco的点击规则,会点到控件的左上角位置,未必能触发真正的点击,所以我们这时候可以巧妙地利用poco点击偏移,来修正我们的点击效果。

这个接口就是 focus。假设,目前我们有一个控件,它本身的 anchorPoint 为[0,0],我们希望能点击到这个控件的中心位置[0.5,0.5],就可以借助 focus 来实现:

poco("假设的控件").focus([0.5,0.5]).click()

我们来看一个使用 focus 的简单示例(为了更好的看到效果,这里使用了 long_click ):

另外,在部分全面屏设备下,可能会出现IDE检索控件的时候会发生偏移,或者执行poco点击脚本的时候,点击发生了偏移,这些情况,我们可以参考官方教程文档的内容:airtest.doc.io.netease.com/IDEdocs/dev…

4. Poco点击的拓展

这里补充关于Poco点击的2个小知识点,一个是双击,一个是长按:

Poco的双击虽然提供了接口名 double_click,但实际是没有实现的:

poco(text="网易云音乐").double_click()

我们在运行的时候会报 NotImplementedError 的错误,当然我们还可以借助Airtest的双击,来实现对Poco控件的点击:

  • 利用get_position获取控件的相对坐标
  • 将控件的相对坐标转换成绝对坐标
  • 利用Airtest的double_click双击绝对坐标

关于Poco的长按,其实刚才我们也简单演示一下:

poco(text="网易云音乐").long_click()

5. 小结

关于Poco点击的内容我们就聊到这里,主要是分享了如何查看Poco的点击位置,如何主动做偏移点击,如何处理全面屏设备的poco点击问题等。感兴趣的同学可以收藏并且关注哦~


AirtestIDE下载:airtest.netease.com/

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

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

官方答疑 Q 群:117973773

相关文章
|
XML JSON 缓存
Java实现根据商品ID搜索抖音商品详情数据方法
Java实现根据商品ID搜索抖音商品详情数据方法
|
Python
python numpy安装
一、python下的numpy安装方法 第一步:安装python,这里不做介绍。 第二步:打开cmd看python是否安装成功。 第三步:输入 python -m pip install -U pip 安装pip文件,pip文件一般在python安装包的script目录下。
5654 0
|
JavaScript 前端开发
el-upload上传文件
el-upload上传文件
1251 0
|
关系型数据库 MySQL BI
关系型数据库选择合适的数据库管理系统
【5月更文挑战第4天】关系型数据库选择合适的数据库管理系统
574 4
关系型数据库选择合适的数据库管理系统
|
11月前
|
Web App开发 JavaScript 前端开发
使用 Chrome 浏览器的内存分析工具来检测 JavaScript 中的内存泄漏
【10月更文挑战第25天】利用 Chrome 浏览器的内存分析工具,可以较为准确地检测 JavaScript 中的内存泄漏问题,并帮助我们找出潜在的泄漏点,以便采取相应的解决措施。
1240 9
|
11月前
|
机器学习/深度学习 运维 安全
图神经网络在欺诈检测与蛋白质功能预测中的应用概述
金融交易网络与蛋白质结构的共同特点是它们无法通过简单的欧几里得空间模型来准确描述,而是需要复杂的图结构来捕捉实体间的交互模式。传统深度学习方法在处理这类数据时效果不佳,图神经网络(GNNs)因此成为解决此类问题的关键技术。GNNs通过消息传递机制,能有效提取图结构中的深层特征,适用于欺诈检测和蛋白质功能预测等复杂网络建模任务。
393 2
图神经网络在欺诈检测与蛋白质功能预测中的应用概述
|
测试技术 数据安全/隐私保护 iOS开发
iOS自动化测试方案(四):保姆级搭建iOS自动化开发环境
iOS自动化测试方案的第四部分,涵盖了基础环境准备、iPhone虚拟机设置、MacOS虚拟机与iPhone真机的连接,以及扩展问题和代码示例,确保读者能够顺利完成环境搭建并进行iOS自动化测试。
1616 0
iOS自动化测试方案(四):保姆级搭建iOS自动化开发环境
|
12月前
|
人工智能
写歌词的技巧和方法基础教程:引领你走进音乐世界,妙笔生词智能写歌词软件
音乐是灵魂的语言,歌词则是承载灵魂的载体。本文介绍写歌词的基础技巧,包括寻找灵感、确定主题、构建结构和运用语言,同时推荐《妙笔生词智能写歌词软件》作为创作助手,助力你走进丰富多彩的音乐世界。
|
机器学习/深度学习 人工智能 分布式计算
Java中的机器学习模型集成与训练
Java中的机器学习模型集成与训练
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试中AI驱动的决策框架设计与实现
【5月更文挑战第5天】 在软件测试领域,自动化测试已成为提升测试效率和质量的关键手段。然而,随着软件系统的复杂性增加,传统的自动化测试方法面临挑战,尤其在测试用例的生成、执行及结果分析等方面。本文提出一种基于人工智能(AI)的自动化测试决策框架,旨在通过智能化的算法优化测试过程,并提高异常检测的准确率。该框架结合机器学习和深度学习技术,能够自学习历史测试数据,预测高风险变更区域,自动生成针对性强的测试用例,并在测试执行过程中实时调整测试策略。此外,通过自然语言处理(NLP)技术,该框架还能对测试结果进行语义分析,进一步提供更深入的洞察。本研究不仅增强了自动化测试工具的智能性,也为软件质量保证提