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

news2024/11/16 6:01:58

目录

一、准备工作

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

腾讯云学生服务器使用教程_申请腾讯云学生机详细流程

2024年腾讯云学生服务器优惠活动「云校园」,学生服务器优惠价格:轻量应用服务器2核2G学生价30元3个月、58元6个月、112元一年,轻量应用服务器4核8G配置191.1元3个月、352.8元6个月、646.8元一年,CVM云服务器2核4G配置842.4元一年&…

Linux篇: 进程控制

一、进程创建 1.1 fork函数初识 在Linux中,fork函数是非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。 返回值: 在子进程中返回0,父进程中返回子进程的PID,子进程创…

腾讯云-云+校园扶持-2核2G学生服务器套餐30元起

2024年腾讯云学生服务器优惠活动「云校园」,学生服务器优惠价格:轻量应用服务器2核2G学生价30元3个月、58元6个月、112元一年,轻量应用服务器4核8G配置191.1元3个月、352.8元6个月、646.8元一年,CVM云服务器2核4G配置842.4元一年&…

【风格迁移】URST:解决超高分辨率图像的风格迁移问题

URST:解决超高分辨率图像的风格迁移问题 提出背景URST框架的整体架构 提出背景 论文:https://arxiv.org/pdf/2103.11784.pdf 代码:https://github.com/czczup/URST?v1 有一张高分辨率的风景照片,分辨率为1000010000像素&#…

【分类讨论】【割点】1568. 使陆地分离的最少天数

作者推荐 动态规划的时间复杂度优化 本文涉及知识点 分类讨论 割点 LeetCode1568. 使陆地分离的最少天数 给你一个大小为 m x n ,由若干 0 和 1 组成的二维网格 grid ,其中 1 表示陆地, 0 表示水。岛屿 由水平方向或竖直方向上相邻的 1 …

Bootstrap的使用

目录 js的引入: 1.行内式 2.嵌入式 3.外链式 Bootstrap:的引入 注意事项: 条件注释语句: 栅格系统: 列嵌套: 列偏移: 列排序: 响应式工具: Bootstrap的字体图标的使用&a…

【MATLAB源码-第147期】基于matlab的QPSK调制解调在AWGN信道,瑞利信道,莱斯信道理论与实际误码率对比仿真。

操作环境: MATLAB 2022a 1、算法描述 四相位移键控(QPSK,Quadrature Phase Shift Keying)是一种重要的数字调制技术,它通过改变信号的相位来传输数据。与其他调制技术相比,QPSK在相同的带宽条件下能够传…

某象滑块js逆向(主要是声明拿过我代码的进来)

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx a15018…

MySQL中json类型的字段

有些很复杂的信息,我们一般会用扩展字段传一个json串,字段一般用text类型存在数据库。mysql5.7以后支持json类型的字段,还可以进行sql查询与修改json内的某个字段的能力。 1.json字段定义 ip_info json DEFAULT NULL COMMENT ip信息, 2.按…

python脚本实现全景站点矩阵转欧拉角

效果 脚本 import re import numpy as np import math import csv from settings import * # 以下是一个示例代码,可以输入3*3旋转矩阵,然后输出旋转角度:# ,输入3*3旋转矩阵# 计算x,y,z旋转角def rotation_matrix_to_euler_angles(R):

缓存相关问题:雪崩、穿透、预热、更新、降级的深度解析

✨✨祝屏幕前的小伙伴们每天都有好运相伴左右✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 引言 1. 缓存雪崩 1.1 问题描述 1.2 解决方案 1.2.1 加锁防止并发重建缓存 2. 缓存穿透 2.1 问题描述 2.2 解决方案 2.2.1 …

nginx介绍及编译安装

nginx介绍 是一个流行的开源的高性能的HTTP和反向代理服务器,也可以用作邮件代理服务器。它以其高性能、稳定性、丰富的功能集和低资源消耗而闻名 nginx特点 高性能: Nginx以其高效的事件驱动架构而闻名,能够处理大量并发连接而不会消耗过多…

判断点是否在多边形内

std::vector<cv::Point2d> vanCorner_;bool inArea(const Pose &pos) {cv::Point2d point cv::Point2d(pos.position.x(), pos.position.y());double distance cv::pointPolygonTest(vanCorner_, point, false);return distance > 0; } 似乎效果不太好,会误报 …

【BUUCTF web】通关 2.0

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏 …

像用Excel一样用Python:pandasGUI

文章目录 启动数据导入绘图 启动 众所周知&#xff0c;pandas是Python中著名的数据挖掘模块&#xff0c;以处理表格数据著称&#xff0c;并且具备一定的可视化能力。而pandasGUI则为pandas打造了一个友好的交互窗口&#xff0c;有了这个&#xff0c;就可以像使用Excel一样使用…

关于网络安全从硬件防火墙防御到软件防御论述

服务器的硬防和软防是指对服务器进行保护和防御的两个层次。硬防主要是通过物理手段来保护服务器的安全&#xff0c;包括服务器的物理安全和硬件设备的安全。软防则是通过软件和配置来保护服务器的安全&#xff0c;包括操作系统的安全配置、网络安全配置、防火墙、入侵检测系统…

04-Linux实用操作

各种小技巧&#xff08;快捷键&#xff09; 强制停止 Ctrlc强制停止 Linux某些程序的运行&#xff0c;如果想要强制停止它&#xff0c;可以使用快捷键ctrlc 命令输入错误&#xff0c;也可以通过快捷键ctrlc&#xff0c;退出当前输入&#xff0c;重新输入 退出、登出 Ctrld退…

运用qsort函数进行快排并使用C语言模拟qsort

qsort 函数的使用 首先qsort函数是使用快速排序算法来进行排序的&#xff0c;下面我们打开官网来查看qsort是如何使用的。 这里有四个参数&#xff0c;首先base 是至待排序的数组的首元素的地址&#xff0c;num 是值这个数组的元素个数&#xff0c;size 是指每个元素的大小&am…

MySQL进阶之(三)InnoDB数据存储结构之数据页结构

三、InnoDB数据存储结构之数据页结构 3.1 数据库的存储结构3.1.1 MySQL 数据存储目录3.1.2 页的引入3.1.3 页的概述3.1.4 页的上层结构 3.2 数据页结构3.2.1 文件头和文件尾01、File Header&#xff08;文件头部&#xff09;02、File Trailer&#xff08;文件尾部&#xff09; …

麒麟银河操作系统V10部署ffmpeg(也能用于Linux系统)

麒麟银河操作系统V10部署ffmpeg(也能用于Linux系统) 部署ffmpeg用来处理视频的各种操作 想使用ffmpeg&#xff0c;要先安装nasm&#xff0c;yasm&#xff0c;x264之后&#xff0c;否则会报错 nkvers 查看麒麟操作系统版本 cat /proc/version #查看linux版本信息 uname -a …