python uiautomator2控制手机点击_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可以识别到设备(Downloads - ADB Shell​adbshell.com

下载后配置环境变量,在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

此时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') # 开启微信

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值