Poco框架实操:对节点可实施的操作
一、前言
二、Poco节点操作详解
2.1 修改文本类属性值:setattr(typename, val)
setattr(typename, val)
这个方法,通过输入属性名以及需要修改进去的内容即可。但是需要注意的是,很多属性如: name
、 pos
等等是不推荐修改的,尤其是 editalbe
为** False
**的节点,不建议修改该节点的所有属性,它们的修改可能会导致出现意外和误报错误。 poco("com.sonyericsson.conversations:id/conversation_edit_text").setattr("text","我要发短信")
2.2 输入文字:set_text()
set_text()
这个方法,但是在使用 set_text()
之前,需要先执行一遍 click
点击操作,激活文本框后,再执行输入操作。 poco("com.sonyericsson.conversations:id/conversation_edit_text").click()
poco("com.sonyericsson.conversations:id/conversation_edit_text").set_text("我要发短信")
set_text()
无法输入,或出现相关报错的话,可以更换使用Airtest的 text()
方法去进行输入即可。 poco("com.sonyericsson.conversations:id/conversation_edit_text").click()
text("我要发短信")
2.3 设置节点焦点:focus(f)
focus
所使用的是局部归一化坐标系,因此同样是UI框的左上角为原点,x轴向右,y轴向下,并且UI框长宽最大坐标均为1。所以一般节点默认的操作点坐标为 [0.5, 0.5]
。 2.3.1 内部偏移
focus
重新自定义一个操作点,也就是设置内部偏移量,偏移量在 大于0且小于1 的范围内。调用这个方法将返回已设置了新操作点的Poco节点,重复调用则以最后一次所调用的为准。 # 内部偏移
poco(texture="icon").focus([0.1,0.8]).long_click()
2.3.2 外部偏移
focus
去指定UI框外的偏移量,并且是会出现偏移量 小于0或者大于1 的情况,但是要注意的是,在考虑外部偏移量的同时,也要注意该偏移量坐标是否会 超出屏幕范围 ,否则会出现该报错: InvalidOperationException('Click position out of screen
。 # 外部偏移
poco(text="pearl").focus([0.5,-3]).long_click()
2.4 拖拽:drag_to(target, duration=2.0)
swipe()
,但是 swipe()
是单纯的从其中一个坐标,滑动到另一个坐标,但是 drag_to()
是完全不同的,首先拖动的是节点而不是普通的一个坐标点,其次,拖动的终点是可以是另一个节点、同一个节点的不同UI位置、或者是某个坐标点。 target
:拖拽的终点(可以为节点,也可以为归一化坐标); duration=2.0
:默认拖拽的持续时间为2秒。 poco('star').drag_to(poco('shell'))
poco("音乐").drag_to([0.5,0.5])
2.5 长按:long_click(duration = 2.0)
click
类似, long_click()
是对节点进行长按操作,可以传入长按的持续时间参数 duration
,默认为2秒。 poco("音乐").long_click()
poco.pocofw module
下的 long_click(pos, duration=2.0)
,我们需要传入设备屏幕归一化坐标 pos
以及 长按的持续时间参数 duration
即可。 poco.long_click((0.5,0.5), duration=2.0)
2.6 双击:double_click(x, y)
poco 1.0.92
及以上版本均能使用,可以在括号内输入双击的偏移点坐标,不填写默认为双击节点的 anchorPoint
,如下: poco("音乐").double_click([0.2,0.8])
三、实操小案例
# -*- encoding=utf8 -*-
__author__ = "Airtest"
from airtest.core.api import *
auto_setup(__file__)
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
#打开网易云音乐
start_app("com.netease.cloudmusic")
sleep(2.0)
poco("com.netease.cloudmusic:id/skipBtn").click()
#点击进入搜索界面
poco("com.netease.cloudmusic:id/iconSearch").click()
sleep(1.0)
#【使用setattr】输入“汪苏泷”
poco("com.netease.cloudmusic:id/search_src_text").setattr("text","汪苏泷")
sleep(1.0)
#点击搜索按钮,进行搜索
poco("com.netease.cloudmusic:id/toSearch").click()
sleep(1.0)
#点击播放全部歌曲
poco("com.netease.cloudmusic:id/actionView").click()
sleep(1.0)
#【使用double_click】双击喜欢歌曲
poco("com.netease.cloudmusic:id/smallAlbumDisc0").double_click()
#退出歌曲播放详情界面
poco("转到上一层级").click()
sleep(1.0)
#【使用focus、drag_to】分别进行节点UI定位以及进行拖拽换歌
poco("com.netease.cloudmusic:id/tv_music").focus([0.8,0.3]).drag_to(poco("com.netease.cloudmusic:id/tv_music").focus([0.2,0.3]),duration = 1.0)
sleep(1.0)
#【使用long_click】长按复制歌曲名
poco(text="此生不换 (Live版)").long_click()
poco("com.netease.cloudmusic:id/copyBtn").click()
#点击上方搜索框
poco("com.netease.cloudmusic:id/search_close_btn").click()
#【使用set_text】将剪切板的内容粘贴在搜索框内
poco("com.netease.cloudmusic:id/search_src_text").set_text(get_clipboard())
#点击搜索
poco("com.netease.cloudmusic:id/toSearch").click()
四、小结
-
修改文本类属性值: setattr(typename, val)
-
输入文字: set_text()
-
设置节点焦点: focus(f)
-
拖拽: drag_to(target, duration=2.0)
-
长按: long_click(duration = 2.0)
-
双击: double_click(x, y)
本文分享自微信公众号 - AirtestProject(AirtestProject)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
分布式任务调度内的 MySQL 分页查询优化
作者:vivo 互联网数据库团队-Qiu Xinbo 本文主要通过图示介绍了用主键进行分片查询的过程,介绍了主键分页查询存在SQL性能问题,如何去创建高效的索引去优化主键分页查询的SQL性能问题 对于数据分布不均如何发现,提供了一些SQL查询案例来进行参考,对MySQL Index Condition Pushdown优化算法做了一些简单介绍。 一、背景介绍 最近在线上环境发现了一条执行较慢的分页查询,高并发执行,产生了大量的慢查询日志,CPU使用率逐步升高。 通过观察它的执行时间,发现该SQL查询时快时慢,执行时间并不稳定,以至于在高并发执行场景时,数据库来不及响应,数据库服务变慢。 二、分析定位 2.1 定位 SQL 执行变慢的原因 通过数据库管理平台查看SQL执行信息发现,SQL解析行数(扫描行数)和SQL执行时间都很不稳定,执行时长和解析行数(扫描行数)是成正比的。 这个也能解释的通为什么SQL执行时长变了,因为扫描行数变多了,SQL执行时间成比例增长。 -- SQL全文select id, uuid, name, user_type, is_deleted, modify_d...
- 下一篇
一文深度剖析 ColBERT
近年来,向量搜索领域经历了爆炸性增长,尤其是在大型语言模型(LLMs)问世后。学术界开始重点关注如何通过扩展训练数据、采用先进的训练方法和新的架构等方法来增强 embedding 向量模型。 在之前的文章中,我们已经深入探讨了各种类型的 embedding 向量和专为高效信息检索而设计的模型,包括针对具体用例设计的稠密、稀疏和二进制 embedding 向量,它们各自的优势和劣势。此外,我们还介绍了各种 Embedding 向量模型,如用于稠密向量生成和检索的 BERT,以及用于稀疏向量生成和检索的 SPLADE 和BGE-M3。 本文将深度剖析 ColBERT——专为高效相似性搜索而设计的创新型 embedding 和排序(ranking)模型。 01.简要回顾 BERT ColBERT,是对 BERT 的延伸。让我们先简要回顾一下 BERT。这将帮助我们理解 ColBERT 所做出的改进。 BERT 全称为 Bidirectional Encoder Representations from Transformers,是一种基于 Transformer 架构的语言模型,在稠密向量和...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6