首页 > 其他 > 详细

uiautomator2 使用

时间:2019-08-31 23:19:47      阅读:153      评论:0      收藏:0      [点我收藏+]

初始化

部署相关的守护进程。

电脑连接上一个手机或多个手机, 确保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 使用

原文:https://www.cnblogs.com/helloTerry1987/p/11440819.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!