【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_setup

if 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

图论 - 最短路(Dijkstra、Bellman-Ford、SPFA、Floyd)

文章目录 前言Part 1:朴素Dijkstra算法一、Dijkstra求最短路 I1.问题描述输入格式输出格式数据范围输入样例:输出样例: 2.算法 Part 2:堆优化Dijkstra算法一、Dijkstra求最短路 II1.题目描述输入格式输出格式数据范围输入样例&…

【学习笔记】Diffusion扩散模型

导读 Diffusion models是现在人工智能领域最火的方向之一,并引爆了AIGC领域,一大批创业公司随之诞生。 AIGC(AI-Generated Content):人工智能创作内容的生产方式。 扩散模型Diffusion 扩散模型Duffison的训练过程 …

Redis【2】—— Redis特性 与 数据类型

Redis【2】—— Redis特性 与 数据类型 二、Redis 的基本介绍(一)关于 Redis1. 特性(1)在内存中存储数据(2)可编程(3)可扩展(4)持久化(5&#xff…

场发射透射电子显微镜(FETEM)技术壁垒高 我国具备研制能力

场发射透射电子显微镜(FETEM)技术壁垒高 我国具备研制能力 场发射透射电子显微镜,简称场发射透射电镜,英文简称FETEM,产品主要由场发射电子枪、高压电源、照明透镜、偏转系统、物镜、投影镜、探测器、样品系统等组成。…

PlantUML简介

PlantUML简介 plantUML是一款开源的UML图绘制工具,支持通过文本来生成图形,使用起来非常高效。可以支持时序图、类图、对象图、活动图、思维导图等图形的绘制。你可以在IDEA中安装插件来使用PlantUML, 或者在Visual Studio Code中安装插件。 也可以在dra…

Nacos环境搭建 -- 服务注册与发现

为什么需要服务治理 在未引入服务治理模块之前,服务之间的通信是服务间直接发起并调用来实现的。只要知道了对应服务的服务名称、IP地址、端口号,就能够发起服务通信。比如A服务的IP地址为192.168.1.100:9000,B服务直接向该IP地址发起请求就…

超好看的下载页HTML源码分享

超好看的下载页HTML源码分享,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面 下载地址:https://www.qqmu.com/2337.html

Java基于SpringBoot的网上租赁系统设计与实现论文

摘 要 本课题是根据用户的需要以及网络的优势建立的一个基于Spring Boot的网上租贸系统,来满足用户网络商品租赁的需求。 本网上租贸系统应用Java技术,MYSQL数据库存储数据,基于Spring Boot框架开发。在网站的整个开发过程中,首先…

NXP实战笔记(十一):32K3xx基于RTD-SDK在S32DS上配置LPSPI(同步、异步、DMA、主机、从机、中断、轮询)

目录 1、概述 2、RTD-SDK配置 2.1、配置目标 2.2、主、从机引脚配置 2.3、时钟配置 2.4、LPSPI配置 2.5、中断配置 2.6、DMA配置(使用DMA才会配置) 2、dma Logic Instance 2.7、RM配置(使用DMA的情况下必须配置此选项) 3、代码实现 1、概述 S32K3_低功耗LPSPI轮询…

Java基于微信小程序的房屋租赁、租房小程序,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

《TCP/IP详解 卷一》第12章 TCP初步介绍

目录 12.1 引言 12.1.1 ARQ和重传 12.1.2 滑动窗口 12.1.3 变量窗口:流量控制和拥塞控制 12.1.4 设置重传的超时值 12.2 TCP的引入 12.2.1 TCP服务模型 12.2.2 TCP可靠性 12.3 TCP头部和封装 12.4 总结 12.1 引言 关于TCP详细内容,原书有5个章…

【YOLO v5 v7 v8 小目标改进】新CNN架构 InceptionNeXt:怎么让大卷积核既好用又快

新CNN架构 InceptionNeXt:怎么让大卷积核既好用又快 提出背景问题: 如何提高大核心卷积的效率,同时保持或提升模型性能? 改进思路MetaNeXtInception深度卷积InceptionNeXt 小目标涨点YOLO v5 魔改YOLO v7 魔改YOLO v8 魔改 提出背景 论文&am…

【改进算法】【IHAOAVOA】天鹰优化算法和非洲秃鹫混合优化算法

目录 1 主要内容 IHAOAVOA流程图 主要创新点 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序复现《IHAOAVOA: An improved hybrid aquila optimizer and African vultures optimization algorithm for global optimization problems》,天鹰优化算法&am…

【c++】理解vec.push_back(vector<int>())

vector<vector> vec; vec.push_back(vector()); vec.back().push_back(10); 定义一个二维向量&#xff08;动态数组&#xff09;: vector<vector> vec; 这行代码定义了一个名为vec的变量&#xff0c;它是一个向量&#xff08;动态数组&#xff09;&#xff0c;其中…

Apache Echarts介绍与入门

介绍 Apache ECharts 是一款基于 Javascript 的数据可视化图表库&#xff0c;提供直观&#xff0c;生动&#xff0c;可交互&#xff0c;可个性化定制的数据可视化图表。 官网地址&#xff1a;https://echarts.apache.org/zh/index.html 入门案例 Apache Echarts官方提供的快…

MySQL误truncate截断后数据恢复2024.3.1

近期很多MySQL数据丢失情况&#xff0c;很多是人为误操作导致。MySQL数据库丢失可能由truncate截断表、delete删除表中数据行、delete删除表、delete删除库、操作系统rm删除数据库文件、硬盘坏道等情况导致。本案例是一个误截断表导致的丢失。 不管哪种情况&#xff0c;第一时…

STM32USART串口数据包

文章目录 前言一、介绍部分数据包两种包装方式&#xff08;分割数据&#xff09;HEX数据包文本数据包 数据包的收发流程数据包的发送数据包的接收固定包长的hex数据包接收可变包长的文本数据包接收 二、实例部分固定包长的hex数据包接收连接线路代码实现 可变包长的文本数据包接…

JavaScript DOM操作笔记记录回忆总结

一、什么是DOM&#xff1f; 1、通过 HTML DOM&#xff0c;可访问 JavaScript HTML 文档的所有元素。 2、当网页被加载时&#xff0c;浏览器会创建页面的文档对象模型&#xff08;Document Object Model&#xff09; 二、操作DOM 1、在操作DOM之前&#xff0c;我们需要先获取到…

设计模式-结构型模式-外观模式

外观模式&#xff08;Facade&#xff09;&#xff0c;为子系统中的一组接口提供一个一致的界面&#xff0c;此模式定义了一个高层接口&#xff0c;这个接口使得这一子系统更加容易使用。[DP] 首先&#xff0c;定义子系统的各个组件接口和具体实现类&#xff1a; // 子系统组件接…

1美元持有ZKFair PFP-CyberArmy,潜在收益分析

3月2日&#xff0c;ZKFair PFP-CyberArmy 将在 Element 上正式开始Public Sale。