python--uiautomator2安装使用教程
对于刚接触移动端UI自动化的小伙伴,大家应该都是从appium入手,但appium需要的环境比较麻烦,使用起来也相对来说比较麻烦(获取元素啥的还要借助adb的uiautomatorview2)。今天小编推荐一个超级好用的库,相较于appium,那简直是“懒人”福利~
一、简介
uiautomator2是一个python库,用于Android的UI自动化测试,其底层基于Google uiautomator,Google提供的uiautomator库可以获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作。
python-uiautomator2封装了谷歌自带的uiautomator2测试框架,提供便利的python接口。他允许测试人员直接在PC上编写Python的测试代码,操作手机应用,完成自动化,大大提高了自动化代码编写的效率。
二、运行原理
如上图所示(用word画的蛮丑的):
运行原理主要分为两个部分
Python:运行脚本,并向移动端发送请求
移动端设备:移动设备上运行了封装了uiautomator2的http rpc服务,解析收到的请求,并调用原生uiautomator2的api实现在手机上的操作。
整个过程:
- 在移动端设备上安装atx(守护进程), 随后atx启动uiautomator2服务(默认7912端口)进行监听
- 在PC上编写测试脚本并执行(相当于发送HTTP请求到移动设备的server端)
- 移动设备通过WIFI或USB接收到PC上发来的HTTP请求,执行制定的操作
所以,由这张图我们就可以得知,要在设备上装东西啦!!!
三、搭建环境
了解uiautomator2的原理和介绍,接下来我们就开始实操了。
安装adb
首先我们需要安装Android adb。小编也是去别的博主那里找的安装教程。
链接双手奉上:超简单的adb安装~
大家参考原文博主的方法一就可以啦!
安装uiautomator2
# 运用终端pip安装
pip install --upgrade --pre uiautomator2
安装atx-agent
安装ATX的前提是设备要连接上PC端,并且能够用adb devices获取到设备号。
# init就是所有USB连接电脑的设备上都安装uiautomator2
python -m uiautomator2 init# 指定设备安装uiautomator2, 用 --mirror
python -m uiautomator2 init --mirror --serial $SERIAL# 嫌弃慢的话,可以用国内的镜像
python -m uiautomator2 init --mirror
最后会提示success,代表ATX初始化完成。
成功之后,我们就可以看到在我们的设备上,有一个小车车的图标出现啦,这就是atx-agent。
安装weditor
pip install --pre -upgrade weditor
安装完成后,接下来就是启动,启动方法:
python -m weditor
启动后,会直接在本地打开一个网页,接下来的操作都可以只在这个网页完成。
比起appium,这个功能不要太强大了~~
四、简单介绍一下weditor
五、实践的应用和操作
使用uiautomator2的流程
- 配置设备参数,设置具体是哪台设备调试
- 获取设备上各元素的控件,使用对应的控件来进行操控
设备的连接,连接方法有两种
1. 通过USB连接
# 通过USB连接后,输入adb获取设备序列号的命令
adb devices
# 获取到设备号后(假设设备号为aaa),在控制台输下命令连接
import uiautomator2 as u2
d = u2.connect('aa') # USB链接设备。或者u2.connect_usb('123456f')
#d = u2.connect_usb() # 当前只有一个设备时可以用这个
2. 通过wifi连接
# 假设设备aaa与PC正处于同一局域网下
import uiautomator2 as u2
d = u2.connect('aaa') # WIFI链接设备。或者u2.connect_wifi('aaa')
检查并维持设备端的运行
d.healthcheck()
安装测试应用,只能从url安装
# 引号内为下载apk地址
d.app_install('http://aaaa.com/aaa.apk')
我们也可以自己手动安装后,用命令获取包名
启动应用进程
# aaa为测试应用的包名,注意哦不是活动包名
d.start('aaa')
停止应用进程
#强制停止应用
d.app_stop('aaa')
#清空App数据
d.app_clear('aaa')
# 停止所有
d.app_stop_all()
# 停止所有应用程序,除了aaa
d.app_stop_all(excludes=['aaa'])
跳过弹窗
# 自动跳过弹出窗口
d.disable_popups()
与设备的交互
- 单击屏幕
d.click(x,y)
- 双击屏幕
d.double_click(x,y)
#加多一个时间参数,默认两个单击之间间隔时间为0.5秒
d.double_click(X,Y,0.5)
- 长按
d.long_click(x,y)
#长按0.1秒
d.long_click(X,Y,0.1)
- 滑动
d.swipe(sx, sy, ex, ey)
# 默认两个坐标滑动轨迹在0.5s完成
d.swipe(sx, sy, ex, ey, 0.5)
- 拖动
d.drag(sx, sy, ex, ey)
# 拖动0.5s
d.drag(sx, sy, ex, ey, 0.5)
- 滑动点
到时候小编会专门出一篇九宫格教程,有兴趣的小伙伴们移步~
# 从点(x0, y0)滑到点(x1, y1)再滑到点(x2, y2)
# 两点之间的滑动速度是0.2秒
d.swipe((x0, y0), (x1, y1), (x2, y2), 0.2)
ps:单击,滑动,拖动操作支持百分比位置值。例:
# 表示长按屏幕中心
d.long_click(0.5, 0.5)
推拉文件
- 将文件推送到设备上
# 推送aaa这个文件到sdcard下
d.push("aaa.txt", "/sdcard/")
# 推送aaa这个文件到sdcard下和对这个文件进行重命名
d.push("aaa.txt", "/sdcard/bar.txt")
# fileobj
with open("aaa.txt", 'rb') as a:d.push(a, "/sdcard/")
# 推动和更改文件访问模式
d.push("aaa.sh", "/data/local/tmp/", mode=0o755)
- 将文件从设备上拉取下来
# 拉取下一个叫aaa的文件
d.pull("/sdcard/aaa.txt", "aaa.txt")# 如果在设备上找不到文件,FileNotFoundError将引发
d.pull("/sdcard/abcd_error.txt", "aaa.txt")
关键事件
- 打开/关闭屏幕
# 打开屏幕
d.screen_on()
# 关闭屏幕
d.screen_off()
- 硬键盘和软键盘的操作
d.press("home") # 点击home键,在视图中也可以直接按按钮触发
d.press("back") # 点击back键,在视图中也可以直接按按钮触发
d.press("left") # 点击左键
d.press("right") # 点击右键
d.press("up") # 点击上键
d.press("down") # 点击下键
d.press("center") # 点击选中
d.press("menu") # 点击menu按键
d.press("search") # 点击搜索按键
d.press("enter") # 点击enter键
d.press("delete") # 点击删除按键
d.press("recent") # 点击近期活动按键
d.press("volume_up") # 音量+
d.press("volume_down") # 音量-
d.press("volume_mute") # 静音
d.press("camera") # 相机
d.press("power") #电源键
- 解锁屏幕
d.unlock()
# 原理相当于:
# 1. 发射活动
# 2. 按home键
正在陆续补充中....
python--uiautomator2安装使用教程相关推荐
- python numpy安装windows_windows 下python+numpy安装实用教程
如题,今天兜兜转转找了很多网站帖子,一个个环节击破,最后装好费了不少时间. 希望这个帖子能帮助有需要的人,教你一篇帖子搞定python+numpy,节约科研时间. 水平有限,难免存在不足,敬请指正. ...
- Python 环境安装系统教程——PyCharm
Python 环境安装系统教程--PyCharm Part1环境配置: IDE--PyCharm 解释器--Python 创建工程: python包的配置--pip的使用 下载wheel文件安装 pi ...
- Python怎么安装?教程来咯
Python安装教程 一.博主自言 随着人工智能的快速发展,python语言越来越受大家的欢迎,博主前段时间先自学了一次,这次再次巩固,顺便分享给大家我遇到的坑.帮助大家学习的时候少走弯路. 希望会对 ...
- python Django 安装详细教程(conda 与cmd)
方式一:anaconda(界面安装) 运行anaconda navigator ,点击Environments–>下拉菜单选择 all ---->搜索框输入 django ,最后点 app ...
- python详细安装教程-python详细安装pip教程
标签: 首先安装Python 我安装了两个版本: Python-2.7.10.tgz Python-3.5.1.tgz 首先看一下系统自带的Python版本: 1 [root@zk src]# pyt ...
- Python UIAutomator2 环境搭建教程
说明 UIAutomator2可用于做安卓相关的自动化,WEditor可以使我们更加便捷的写自动化脚本 基础环境 Python 3.7.3 安卓手机 安卓8 开始搭建 如果使用conda ,请先创建 ...
- python自动安装pip教程_谈谈全自动安装常使用的pip install的原理及作用!!!
正如第一句所说: pip is the package installer for Python. You can use pip to install packages from the Pytho ...
- Python,安装selenium教程
1.我们需要安装Python IDE,(建议去官网下载) Python官网地址: https://www.python.org/downloads/release/python-3102/ 安装的时候 ...
- python软件下载安装教程,python详细安装教程视频
python安装教程 python安装教程具体如下:1.确定电脑的系统类型. 在安装python之前,你要先确定一下你的电脑的系统类型及详细配置,具体方法如下:点击桌面上的快捷图标"此电脑& ...
- 自学python需要安装什么-Python自学之环境安装
原标题:Python自学之环境安装 网上有各种Python环境安装的教程,看似简单但只有自己亲身实践才知有好多坑.作者在Windows 7 32位操作系统下部署Python环境(这里遇到的一个坑是Wi ...
最新文章
- 解决CPC撰写文档报错问题“无法获取“AxforApplication”控件的窗口句柄。不支持无窗口的 ActiveX 控件”
- [C++ map dp]codeforces 960F. Pathwalks
- 清华大学人工智能研究院成立智能信息获取研究中心
- 带有Spring Boot和Spring Cloud的Java微服务
- 主持人李咏在美国去世 妻子哈文:永失我爱
- HtmlEditor在Blazor中编写
- 解决windows 2003打了系统补丁后远程桌面不能用
- AngularJS: 自定义指令与控制器数据交互
- Jquery—JQuery对checkbox的操作(01)
- js错误处理权威指北
- 2021东北师范大学计算机技术专业研究生入学复测考试
- 天猫欲攻手机市场 中华酷联倒戈 京东或将失势
- vb实现微信自动投票——开发一个自动化微信投票器【有源码】
- vue实现拖拽的组件
- matlab中绘制一个sin函数曲线
- 高阶导数求法与非显形式函数的二阶导
- Docker中安装python-pcl库
- 产品推广合作扁平化通用PPT模板
- API使用步骤及分析
- 西门子1500可编程逻辑控制器语言介绍(1)----CEM语言
热门文章
- 计算机主机审计系统,关于计算机审计系统的设想
- 往Iphone里添加歌曲通过91助手
- vue项目打包部署流程
- 我的世界1.8 下载
- 请问一个新手要怎么学习3Dmax建模?3d建模用什么软件
- 区块链最全书单:必读这20本书
- 保险业务与系统——LOMA 290 保险公司运营——第六讲——产品开发
- 青少年python编程课哪家好,青少年Python编程课反馈与分享
- 蓝桥杯真题 16省Ja3-搭积木(小明最近喜欢搭数字积木, 一共有10块积木,每个积木上有一个数字,0~9。...)搭积木规则: 每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。 最
- 用WinServer?第一步,得看版本!