uiautomator2 python远程操作Android

上次写了一个Android自动化脚本,使用了appium和python-appium,刚开始使用时感觉很厉害,手机连上数据线之后,编写一系列代码就可以使Android自动操作,但是需要安装appium客户端(当时400多M),还需要手机用数据线连接计算机,后来无意间在网上发现了uiautomator2,和weditor,可以让手机脱离数据线,用局域网连接电脑,而且不需要额外安装软件,非常方便。

1、安装uiautomator2:pip install --pre uiautomator2

依赖(pillow):pip install pillow

2、初始化:(第一次需要)手机通过数据线连入电脑,abd可以识别到设备(adb可免费下载,下载后配置环境变量,在cmd中输入adb devices,使adb可以识别到手机),执行如下命令:

python -m uiautomator2 init

过程中会在手机安装程序:uiautomator-server 、atx-agent、openstf/minicap、openstf/minitouch

保持手机与电脑在同一wifi下,查看手机ip地址。

3、连接

import uiautomator2 as u2

d = u2.connect('192.168.8.100')

print(d.info)

此时,会输出连接信息。证明手机连接成功。

4、定位

使用python库weditor进行定位,weditor是运行在浏览器的一个服务,通过对页面节点的选择,可定位到相应的元素。使用之前需要pip安装:

pip install --pre --upgrade weditor

使用:python -m weditor


uiautomator2 python远程操作Android_第1张图片

此时weditor会在浏览器中开启,在页面左上角选择Android,输入设备IP(192.168.8.100),点击Connect按钮。

weditor大体可分为三块,最左边是此时手机的屏幕,可通过鼠标点击进行定位,其中Home,back,menu键分别对应手机的主页,返回,菜单键,最下边的框是操作过程中的响应;

最右边是手机页面的源代码,中间是定位到的元素的信息,其中定位的元素可以tap(点击),可以填写(send keys),操作后,程序会将操作的python代码直接生成,显示在中间的最下边。还有一个reload按钮,进行对手机页面的刷新。

代码写好之后,weditor就可关闭,直接运行即可,不需依赖weditor。

d = u2.connect(ip)

d.app_start('com.android.contacts')# 打开手机通讯录

d.swipe(690, 720, 100, 720)            #向左滑动

d(resourceId="com.android.contacts:id/option_edit_contact").click() # 点击右上角三个点

d(resourceId="com.android.contacts:id/title").click()  #导入联系人

d.app_start('com.tencent.mm') # 开启微信


操作很简单,功能超级强!

你可能感兴趣的:(uiautomator2 python远程操作Android)