更多精彩内容在公众号。
前面介绍的adb方法都不好实现代码自动化控制,如果想要实现代码自动化控制的话就要用到uiautomator这个工具
UiAutomator是一个用于Android平台的自动化测试框架。它允许开发人员编写自动化测试脚本来模拟用户在Android设备上的操作,例如点击按钮、输入文本、滑动屏幕等。UiAutomator框架提供了一组API,可以与设备上的UI元素进行交互,并提供了丰富的功能来执行测试用例和获取测试结果。通过使用UiAutomator,开发人员可以自动化执行各种测试任务,包括功能测试、性能测试和用户界面测试等
首先安装python的依赖库。pip3 install -U uiautomator2
然后执行python -m uiautomator2 init 安装包含httprpc服务的apk到手机+atx-agent, minicap, minitouch。手机会弹出安装界面提示是否安装
完成的安装结果如下
安装好了后会显示atx等app
Python中使用代码如下:
执行结果如下,表示连接成功
Uiautomator的原理是通过查找手机上的元素定位,然后点击。类似于网页点击的原理。
首先电脑上安装
pip3 install webitor
安装完成后,cmd界面执行python -m weditor 跳出手机元素界面如下。
第一步:输入设备id, 也就是adb devices查出来的ID
第二步:点击连接
第三步:点击Dump Hierarchy
然后再第4步就会出现手机的界面
在右边的coding界面可以看到对应的python连接代码。这点最好的地方就是不用亲自写代码。当你在左边屏幕上点击的时候,中间Selected Element会显示设置的XPathi定位坐标点
双击代表进入设置界面。同时进入后右边的coding界面就会显示点击的代码
再点击wifi,代码同步更新
点击关闭wifi
这样,通过一步步点击操作,你就能得到各个步骤的代码。然后把这些代码集成进去。就可以形成一个完整的自动化点击代码。注意:因为点击后手机刷新是要消耗时间的,所以两次点击之间最好等待一会儿。不要连续两次点击挨着来。
如果不利用界面,可以用
d. dump_hierarchy()的方式把当前界面的元素机构图打印出来。然后找你需要的元素。比如我想开关wifi。找到text=”开启WLAN”. 代码如下,就可以把wifi开关打开了
import uiautomator2 as u2
d = u2.connect()
ret=d.dump_hierarchy()
print(ret)
d(text="开启WLAN").click()
详细的使用参考官方文档。
https://github.com/openatx/uiautomator2
更多精彩内容在公众号。