uiautomator2 使用

Posted helloterry1987

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uiautomator2 使用相关的知识,希望对你有一定的参考价值。

初始化

部署相关的守护进程。

电脑连接上一个手机或多个手机, 确保adb已经添加到环境变量中,执行下面的命令会自动安装本库所需要的设备端程序:uiautomator-server 、atx-agent、openstf/minicap、openstf/minitouch

python -m uiautomator2 init

安装完成,设备上会多一个uiautomator的应用(ATX)。打开页面如下:

技术图片

 测试

编写以下脚本进行验证:

python
import uiautomator2 as u2
d = u2.connect(‘10.59.8.231‘)//查看手机连接IP地址
print(d.info) //打印手机信息
exit() //退出python

运行结果:

技术图片

定位元素:

我们可以借助android SDK自的uiautomatorviewer查看元素,这就要求手机必须以USB的方式连接PC,我前面使用的是WIFI连接进行连接的。所以,openatx提供了另外一个工具weditor 来解决这个问题。

GitHub地址:https://github.com/openatx/weditor

1、安装:

pip install --pre --upgrade weditor

安装成功如下:

技术图片

2、使用:

python -m weditor

技术图片

 默认会自动通过浏览器打开页面:http://localhost:17310/

技术图片

连接方式:

1、在页面左上角选择Android,输入设备IP(10.59.8.231),点击Connect按钮。

2、在页面左上角选择Android,输入设备序列号(adb devices获取序列号),点击Connect按钮。

当我们操作完手机后,可以点击“Dump Hierarchy”按钮进行刷新,从而保持与设备上的界面保持同步。weditor 还可以帮我们生成代码。待研究~

小结:这里基本不会有什么坑,按照以上流程会ok~

 

编写测试脚本

这里直接从这里拿过来,后面待细细研究

import uiautomator2 as u2
from time import sleep

d = u2.connect(‘192.168.31.234‘)

# 启动App
d.app_start("com.meizu.mzbbs")

# 搜索
d(resourceId="com.meizu.mzbbs:id/j0").click()

# 输入关键字
d(resourceId="com.meizu.mzbbs:id/p9").set_text("flyme")

# 搜索按钮
d(resourceId="com.meizu.mzbbs:id/tp").click()

sleep(2)

# 停止app
d.app_stop("com.meizu.mzbbs") 

app_start()和app_stop()用于启动和停止应用。

常用的定位方式:

  • ResourceId定位:
    • d(resourceId="com.meizu.mzbbs:id/tp").click()
  • Text定位:
    • d(text="精选").click()
  • Description定位:
    • d(description="..").click()
  • ClassName定位:
    • d(className="android.widget.TextView").click()

以上是关于uiautomator2 使用的主要内容,如果未能解决你的问题,请参考以下文章

poco uiautomator2优劣

UIAutomator2 + Python 入门使用总结

uiautomator2 使用

手机APP自动化之uiautomator2 +python3 UI自动化

UiAutomator1.0 与 UiAutomator2.0

初探UiAutomator2.0中使用Xpath定位元素