【airtest】自动化入门教程(三)Poco操作

目录

一、准备工作

1、创建一个pthon脚本

2、光标位置 2、选择Android 3、选择yes

二、定位元素

三、poco基于设备/屏幕  方式

1、poco.click( (x,y))基于屏幕点击相对坐标为x,y的位置

2、poco.get_screen_size()

3、poco.swipe(v1,v2)基于屏幕从v1位置滑到到v2

 4、scroll("垂直/水平",百分比) 滑动

四、poco定位到元素方式 

1、ele = poco(属性名=属性值〕

2、ele.click ===> poco(属性名=属性值).click()点击指定元素

3、ele.attr(属性名)根据属性名获取元素指定的属性值

4、ele.setattr(属性名,属性值)对指定元素的属性重新赋值

5、ele.set_text("文本") 对指定元素设置文本值

6、ele.get_text()获取元素的text属性值

7、ele.swipe(坐标/方向)将指定元素滑到到某个位置/方向

8、ele.exists(判断元素是否存在)

五、附录

1、运行注意事项

 1.1 运行代码注意这三个不要开启,记得关闭

1.2 运行时这里需要时Andriod


前言:是一款基于UI控件识别的自动化测试框架,目前支持Unity3D/cocos2dx-*/Android原生app/iOS原生app/微信小程序,也可以在其他引擎中自行接入poco-sdk来使用

一、准备工作

1、创建一个pthon脚本

2、光标位置 2、选择Android 3、选择yes

from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)

 

二、定位元素

 Poco底层 是uiautomator实现的   下图元素定位方式本教程第一篇文章有描述

三、poco基于设备/屏幕  方式

poco.pocofw module — poco 1.0 文档

1、poco.click( (x,y))基于屏幕点击相对坐标为x,y的位置

# -*- encoding=utf8 -*-
__author__ = "cheng"from airtest.core.api import *
from airtest.cli.parser import cli_setupif not cli_setup():auto_setup(__file__, logdir=True, devices=["android://127.0.0.1:5037/127.0.0.1:7555?cap_method=ADBCAP&touch_method=MAXTOUCH&",])from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)# script content
print("start...")
poco.click([0.362,0.507])

2、poco.get_screen_size()

print(poco.get_screen_size())

3、poco.swipe(v1,v2)基于屏幕从v1位置滑到到v2

poco.swipe([0.36,0.87],[0.43,0.34]) # 点到点
poco.swipe([0.36,0.87],direction=[0,0.3]) # 点与方向

 4、scroll("垂直/水平",百分比) 滑动

poco.scroll("vertical", 0.5) # 水平 
poco.scroll("horizontal", 0.5) # 垂直

四、poco定位到元素方式 

poco.proxy module — poco 1.0 文档

1、ele = poco(属性名=属性值〕

如果找到多个元素是一个列表﹒如果能定位到唯一元素直接是个元素对象

poco(text="文档扫描").click()  # 定位到一个元素就是直接操作的对象
print(len(poco(name="com.youdao.note:id/item_top_view_image")))  # 定位到多个元素就是列表[]

2、ele.click ===> poco(属性名=属性值).click()点击指定元素

poco(text="文档扫描").click()  # 定位到一个元素就是直接操作的对象

3、ele.attr(属性名)根据属性名获取元素指定的属性值

print(poco(text="文档扫描").attr("text"))  # 获取文本属性

4、ele.setattr(属性名,属性值)对指定元素的属性重新赋值

poco(text="搜索笔记").setattr("text", "New Text") 

5、ele.set_text("文本") 对指定元素设置文本值

poco(text="搜索笔记").set_text("搜索内容")

这个设置文本值,后续没有回车等动作 

6、ele.get_text()获取元素的text属性值

print(poco(text="文档扫描").get_text())  # 获取文本属性

7、ele.swipe(坐标/方向)将指定元素滑到到某个位置/方向

poco(text="没有更多了~").swipe([0.4,0.4])   # 坐标
poco(text="没有更多了~").swipe("up")   # 方向

8、ele.exists(判断元素是否存在)

print(poco(text="文档扫描").exists())  # 判断元素是否存在

五、附录

1、运行注意事项

 1.1 运行代码注意这三个不要开启,记得关闭

1.2 运行时这里需要时Andriod

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/503607.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

物联网与智慧城市:科技驱动下的城市智能化升级之路

一、引言 随着科技的不断进步和城市化进程的加速,物联网与智慧城市的结合已经成为推动城市智能化升级的关键力量。物联网技术以其强大的连接和数据处理能力,为智慧城市的建设提供了无限可能。本文旨在探讨物联网如何助力智慧城市的构建,以及…

midjourney提示词语法

更高级的提示可以包括一个或多个图像URL、多个文本短语和一个或更多个参数 Image Prompts 可以将图像URL添加到提示中,以影响最终结果的样式和内容。图像URL总是位于提示的前面。 https://docs.midjourney.com/image-prompts Text Prompt 要生成的图像的文本描述。…

什么是Vue组件?如何在Vue中定义一个组件?

在前端开发中,Vue.js是一种流行的JavaScript框架,用于构建交互式的Web界面。Vue组件是Vue.js中非常重要的概念,它允许我们将UI划分为可重用、独立和功能性的代码块。在Vue.js中,每个组件都有自己的HTML模板、JavaScript逻辑和CSS样…

C++_map与set

目录 一、set 1、set的用法 2、multiset 二、map 1、map的用法 2、map的operator[] 3、multimap 结语 前言: C中的map和set容器属于关联式容器,与序列式容器不同的地方在于(序列式容器即vector、list,其底层是由线性数据…

国际光伏展

国际光伏展即国际光伏产业展览会,是全球范围内最具规模和影响力的光伏产业展览会之一。光伏展是一个专门展示和推广光伏技术和产品的平台,汇聚了全球各类光伏企业、研究机构和专家学者,是光伏行业交流、合作和发展的重要场所。 国际光伏展通常…

java中开源json处理库介绍

在Java生态系统中,有几个常用的开源库用于处理JSON数据。这些库各有特点,适用于不同的场景。下面我将介绍几个流行的Java JSON处理库,包括它们的基本情况、主要特点和核心API。 Jackson 基本情况 Jackson是一个流行的Java库&…

Tomcat服务部署、优化

一 Tomcat的基本介绍 Tomcat概念 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。 当在一台机器上配置好Apache 服务器…

uniApp 调整小程序 单个/全部界面横屏展示效果

我们打开uni项目 小程序端运行 默认是竖着的一个效果 我们打开项目的 pages.json 给需要横屏的界面 的 style 属性 加上 "mp-weixin": {"pageOrientation": "landscape" }界面就横屏了 如果是要所有界面都横屏的话 就直接在pages.json 的 gl…

FlinkSQL ChangeLog

01 Changelog相关优化规则 0101 运行upsert-kafka作业 登录sql-client,创建一个upsert-kafka的sql作业(注意,这里发送给kafka的消息必须带key,普通只有value的消息无法解析,这里的key即是主键的值) CREA…

python3.x的在线与离线安装纯净版

由于计划搭建一套使用python自动分析日志的流程,发现我们的测试环境CentOS 7仍然没有安装python3,无法使用这些新的库。Python 3在设计上着重提升了语言的一致性和易用性,它引入了许多关键改进,此外,Python 3环境拥有丰…

机器学习 | 模型性能评估

目录 一. 回归模型的性能评估1. 平均平方误差(MSE)2. 平均绝对误差(MAE)3. R 2 R^{2} R2 值3.1 R 2 R^{2} R2优点 二. 分类模型的性能评估1. 准确率(Accuracy)2. 召回率(Recall)3. 精确率(Precision)4. …

sqlserver unique约束示例

UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。 PRIMARY KEY 拥有自动定义的 UNIQUE 约束。 与主键约束类似,唯一约束也强制唯一性,但唯一约束用于非主键的一列或者多列的组合,且一个表可以定义多个唯一约束。 有如下表&…