首页 > 闲鱼新闻

Python 自动化,Appium 凭什么使用 UiAutomator2?

21-08-20闲鱼新闻围观685

简介 点击巴西“AirPython”,选择“加为星标”第一时间关注蟒蛇技术干货!1。UiAutomator 2是什么可能很多人对UiAutomator2和UiAutomator傻傻分不清UiAutomato

  点击巴西“AirPython”,选择“加为星标”

微信号:pps188888
添加微信,免费试用软件
复制微信号

  第一时间关注蟒蛇技术干货!

  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自动化,氦凭什么取代硒?

Tags:

复制成功

微信号: pps188888
添加微信,免费试用软件

我知道了
添加微信

微信号: pps188888
添加微信,免费试用软件

一键复制加过了
18749471747
微信号:pps188888添加微信
pps188888