Pyhton3+AirTest+[003]+小程序UI自动化之常用方法介绍
时间:2021-07-17
本文章向大家介绍Pyhton3+AirTest+[003]+小程序UI自动化之常用方法介绍,主要包括Pyhton3+AirTest+[003]+小程序UI自动化之常用方法介绍使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、airtest介绍
- 官网:https://airtest.doc.io.netease.com/
- Airtest API文档:https://airtest.readthedocs.io/en/latest/
二、poco介绍
Poco是一款基于UI控件搜索的自动化框架,与基于图像识别的Airtest不同的是,Poco可以使用类似 poco(“OK”).click() 的方式来获取并操作节点
-
导入poco
from poco.drivers.android.uiautomation import AndroidUiautomationPoco poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
-
启动APP
def lautch_app(self,package,activity=None): """ 启动app :param package: :param activity: :return: """ try: start_app(package) return True except Exception as e: print("启动失败:{}".format(e)) print("启动{}失败!!!".format(package)) return False
-
页面滑动相关方法
- 获取手机屏幕大小
def get_myWindow_size(self): """ 获取设备的高度和宽度 :return: """ width, height = self.poco.get_screen_size() return width, height
- 上滑屏幕
def mobile_page_up_or_down_swip(self,start_x=0.5,start_y=0.6,end_y=0.9): ''' 页面上下滑动 :return: ''' size = self.get_myWindow_size() print("size[0]={0},size[1]={1}".format(size[0],size[1])) logger.info("size[0]={0},size[1]={1}".format(size[0],size[1])) x1 = size[0] * start_x # size[0]取元组的第一个值,*0.5表示中间的点 y1 = size[1] * start_y # size[1]取元组的第二个值,*0.1表示距离底部近 y2 = size[1] * end_y time.sleep(2) swipe((x1*start_x, y1*start_y),vector=(x1*start_x,y2*end_y))
- 左滑屏幕
def mobile_page_left_or_right_swip(self,start_x= 0.5,start_y= 3/4,end_x= 1/6): ''' 页面左右滑动 :return: ''' size = self.get_myWindow_size() print("size[0]={0},size[1]={1}".format(size[0],size[1])) x1 = int(size[0] * start_x) # size[0]取元组的第一个值,*0.5表示中间的点 y1 = int(size[1] * start_y) # size[1]取元组的第二个值,*0.1表示距离底部近 x2 = int(size[0] * end_x) time.sleep(2) swipe((x1 * start_x, y1 * start_y),(x2 * end_x, y1 * start_y))
- 元素点击
def click_element(self,method,context): """ 点击元素 :param name: :return: """ if method == "name": self.poco(name=context).click() elif method == "text": self.poco(text=context).click()
- 输入文本
def input_element(self,method,context,value): """ 输入 :param method: :param context: :return: """ if method == "name": self.poco(name=context).set_text(value) elif method == "text": self.poco(text=context).set_text(value)
- 模拟键盘点击
def click_keyboard(self,name): """ 模拟键盘点击 :param name: :return: """ keyevent(name)
- 检测某元素是否存在,通过name和text
def find_element_by_method(self,method,context): """ 通过method判断元素是否存在 :return: """ if method == "name": return self.poco(name=context).exists() elif method == "text": return self.poco(text=context).exists() else: pass
当有些人一出生就有的东西,我们要为之奋斗几十年才拥有。但有一样东西,你一辈子都不会有,那就是我们曾经一无所有。
原文地址:https://www.cnblogs.com/chushujin/p/15024054.html
- HDU 1005 Number Sequence(矩阵)
- 正则表达式
- 列表(List) 的增删改查及其他方法
- Python之递归函数
- RFID Hacking②:PM3入门指南
- HDU 1575 Tr A(矩阵快速幂)
- Python之内置函数
- Python中的logger和handler到底是个什么鬼
- 1570. [POJ3461]乌力波
- biztalk rosettanet 自定义 pip code
- Python之线程
- 3555: [Ctsc2014]企鹅QQ
- 【实战】RFID Hacking(1):看我如何突破门禁潜入FreeBuf大本营
- P2885 [USACO07NOV]电话线Telephone Wire
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【python opencv】轮廓更多属性
- Gin 学习之安装和快速启动
- 给兄弟讲bitCoins和blockchain
- Gin 学习之响应处理
- 【python opencv】直方图查找、绘制和分析
- Gin 学习之接收参数和读取 reader
- 【python opencv】二维直方图
- 序列检测一定要用状态机?
- 【python opencv】直方图反投影
- 【python opencv】模板匹配
- 【python opencv】霍夫变换
- python动态柱状图图表可视化:历年软科中国大学排行
- 【MSQL数据库】MySQL中的NULL
- sklearn自带的数据集以及生成数据
- elaticserch的索引