UIAutomator2

介绍一种Android UI自动化框架UIAutomator2,使用发现该框架有如下优点:
1.环境搭建便捷
2.UI控件识别有专业工具,可视化好
3.UI自动化编写采用python,学习成本低
4.UI自动化脚本运行稳定

缺点:
存在设备兼容性问题,如:
华为手机,无法通过IP离线执行UI自动化
三星S8手机微信webview页面无法识别元素

环境搭建

Android环境

从谷歌官网下载Android Platform Tools https://developer.android.com/studio/releases/platform-tools.html,解压,并加包含adb.exe的目录加入到系统的PATH中
环境安装后验证代码

adb devices
image.png

python3环境

python3环境搭建参考先前的文章
https://www.jianshu.com/p/da803d5f7ccd

UIAutomator安装

python2安装命令

pip install --pre -U uiautomator2

python3安装命令

pip3 install --pre -U uiautomator2
image.png

手机设备环境

手机链接pc,输入adb命令adb devices发现设备后表明设备已连接成功
pc终端输入命令,以安装atx-agent至手机

python3 -m uiautomator2 init

安装成功如下图


image.png

应用及操作

uiautomator2使用基本过程
1.选择合适的方式连接手机,如usb数据线,Wi-Fi
2.使用工具,抓去手机app的控件元素
3.基于元素控件,调用uiautomator2 API编写UI自动化脚本

手机连接方式

1.使用WIFI连接
手机获取到手机的IP,并确保电脑可以PING通手机。手机的IP可以在设置-WIFI设置里面获取到。华为手机无法通过Wi-Fi连接(华为系统原因)
比如手机的IP是10.242.23.215,连接设备的代码为

import uiautomator2 as u2  //依赖包
d = u2.connect('10.242.23.215')

2.使用USB连接

手机的序列号可以通过adb devices获取到,假设序列号是123456f,连接代码为

import uiautomator2 as u2
d = u2.connect_usb('xxxxx')

控件识别

使用weditor进行元素识别,
安装方法如下:

pip3  install --pre weditor
image.png

使用方法
1.手机连接pc,adb命令保证能正确读取到设备
2.pc终端输入python3 -m webditor,浏览器自动打开网页http://atx.open.netease.com
3.网页对应位置输入手机设备ip,点击connect连接手机设备,最后根据需要获取手机/app对应元素
正常启动页面如下:
设备id输入/Connect连接/reload刷新页面

image.png

UI自动化编写

具体参考git:
https://github.com/openatx/uiautomator2

操作控件

# click
d(text="Settings").click()

# long click
d(text="Settings").long_click()

# 等待元素的出现
d(text="Settings").wait(timeout=10.0)

中文字符输入

d(text="Settings").set_text("你好")

你可能感兴趣的:(UIAutomator2)