首页 > 闲鱼新闻
Python 自动化,Appium 凭什么使用 UiAutomator2?
21-08-20闲鱼新闻围观685次
简介 点击巴西“AirPython”,选择“加为星标”第一时间关注蟒蛇技术干货!1。UiAutomator 2是什么可能很多人对UiAutomator2和UiAutomator傻傻分不清UiAutomato
点击巴西“AirPython”,选择“加为星标”
添加微信,免费试用软件
复制微信号
第一时间关注蟒蛇技术干货!
1。UiAutomator2 是什么
可能很多人对 UiAutomator2 和 UiAutomator 傻傻分不清
UiAutomator是谷歌开发的游戏运行在Android设备上的UI语言自动化测试工具,基于JAVA,使用它有一个限制,就是必须打包成APK或JAR,然后上传到设备上,才能运行
其实,UiAutomator2同样有JAVA和Python版,今天我们聊的是Python版本的UiAutomator2
以上JAVA版本的可以参考之前写的文章:点我查看
Python 版本的 UiAutomator2 项目地址:
https://github。com/openatx/uiautomator2
2。Appium 和 UiAutomator2
移动自动化的鼻祖,早期版本的Appium是基于UiAutomator和Bootstrap。罐
其中,Bootstrap 在 Appium 初始化的时候,被发送到 Android 设备上,负责监听 Appium 发过来的请求,并转换后发送给 UiAutomator 去处理,完成自动化操作
最新版本的 Appium 加入了对 UiAutomator2 的支持,原理进行了更新,功能和稳定性进一步研究
原理图可以参考:
3。准备
在使用 UiAutomator2 之前,需要做如下准备
1、在PC端配置Android开发环境
2、使用pip 安装uiautomator2 依赖
3、在手机上安装atx-agent应用
ps:atx-agent是服务端,一直运行在后台
4、安装编辑器
WEditor通过ip连接手机,即可以实时查看App的界面元素信息
和Appium DeskTop之类,可以模拟点击、跳跃操作、生成操作源码等功能
首先,通过pip安装 weeditor 依赖包
然后,在命令行输入浏览器中,编辑器会自动在浏览器中打开,然后通过ip连接的设备,即可获取设备端当前界面的控件信息
信息内容包括:控件的层级关系、控件ID、文本内容、坐标值等内容
4。实战一下
还是以闲鱼搜索商品为例,聊聊UiAutomator2的使用
1、连接设备
使用 UiAutomator2 连接设备有 3 种方式,分别是:
局域网设备IP地址
USB连接+设备序列号
ADB + IP +端口号
2、打开闲鱼APP
调用上面的设备对象中 app_start() 方法,可以参数应用程序的包名作为打开应用
需要注意的是,方法中的第二个参数如果为 True,可以冷启动 App,默认值为 False
3、点击搜索栏进入搜索界面
首先,是因为设置了一个隐式等待,以免找到元素的因为卡顿、网络导致的异常
然后,通过 WEditor 定位到搜索入口控件的基本信息
常用的UiAutomator2定位方式有6种,分别是:
ID定位
文本文本定位
描述定位
类名定位
Xpath 定位
组合定位
例如:
需要可能是,当表面属性值不合适的时候,组合就可能很实用
本例直接使用ID去找到元素,然后执行点击操作,跳转到搜索界面
4、搜索
UiAutomator2中提供了send_keys()方法,用于向输入输入设置文本
注意:参数清除如果设置为True,则在输入内容之前,会先清空输入框,默认值为False
5、跃
UiAutomator2 提供了两种方法一种跳跃界面,分别是:
swipe_ext( 倾斜方向 )
swipe( 开始x轴,开始y轴,结束x轴,结束y轴值,跳跃时间)
通过测试发现,跳跃操作,swipe_ext() 使用效果稳定,建议使用 swipe() 函数
另外,因为方法不同的装置,建议通过屏幕自由跳跃
6、关闭应用
在完成自动化操作后,就可以调用 app_stop() 方法强制关闭应用
当然,可以在每次操作完成后,使用 UiAutomator2 提供的方法 app_clear() 清除 App 数据
5。
通过上面的实例,我们发现了 UiAutomator2 比 Appium,语法更简洁易懂,代码量也少了很多
但是由于Uiautomator2仅适用于Android端,Appium拥有多语言、跨平台的特性,企业级自动化一般会选择
我已经将文中全部源码上传到后台,关注公众号后回复「uiauto2」即可获得全部源码
如果你觉得文章还不错,请大家点赞、分享、留言下,因为这将是我持续输出更多优质文章的最强动力!
留言送书
本周赠书:《姜戈项目开发实务》PS:中奖将于下周一在交流群发表
阅读推荐
带你用Python实现自动化群控(入门篇)
聊聊Python做微信小程序自动化,那些踩过的坑?
Python自动化,氦凭什么取代硒?