语言:python
安装完毕后确保环境变量配置完毕
在安装atx和weditor建立连接的同时需要先下载安卓调试桥adb
用数据线连接电脑然后开启开发者模式并在cmd输入adb devices列出连接的设备
将获取的设备序列号输入在浏览器Weditor中并connect,开始自动安装ATX到该手机上
pip install weditor==0.6.4
pip list | findstr weditor
python -m weditor
编写代码
device = u2.connect("192.168.0.187") # tcpip同个局域网连接,的方式即可连接手机设备通过adb桥的tcp协议进行无线联调
import uiautomator2 as u2; # 依赖包
if __name__ == '__main__':
# device = u2.connect() # 模拟器默认连接方式
device = u2.connect("192.168.0.187:5555") # tcpip同个局域网连接
# device = u2.connect("46d0c494") # usb连接,需要开启开发者模式,用atx也可以开启开发中模式,cmd输入adb devices获取设备号
print("device_info==========================")
print(device.device_info)
device(text='QQ').click()
无线联机
手机开启开发者模式并开启usb调试,此时才能连接同局域网目标手机的tcp/ip端口。连接后才能通信。更多原理详见安卓官网
获取包名的三种方式:
获取包名时,该app必须运行起来
案例演练
查看手机的文件系统
音量加、减、静音、预览最近打开的程序、电源键
遇见相同的元素,这里选择点击第三个
找子元素
找同级元素
找父级元素(父级很慢建议不要用)
这种方式速度较慢
uiautomator2是python语言实现的一个app自动化测试框架,weditor是python版的uiautomator2中的一个元素定位工具。
下面是我在使用weditor中遇到的一个报错,自己给自己挖的坑,含泪也要踩完。。。
1、首先通过adb devices命令能够识别到至少一个android设备【我这里使用的是雷电模拟器v4.0.22】,
2、确保设备当前没有被任何其它的应用程序所占用,占用的话需要关闭其他应用,
3、继续在cmd里输入weditor,稍等片刻会打开一个浏览器,如图
4、竟然报错了 adbutils.errors.AdbError:unknown host service
看报错是adb的问题,但是不知道怎么下手,多次尝试重启电脑、更新adb都没有解决,后来经一位大佬提醒,在cmd里面 "where adb"看看有几个adb,如图:
瞬间恍然大悟,原来是之前给自己挖了一个大坑,两个地方都有adb,于是果断删除第一个adb,重新走了一遍流程,终于成功了
使用adb时需要5037端口是空闲的,此时只需要辨别电脑的5037端口被哪个应用程序占用即可。
1. 打开命令行,输入命令:netstat -ano |findstr "5037"
2、查看到对应的进程的PID是7952
Ctrl+alt+delete,打开任务管理器,查看是哪个进程占用了7952
这里是sjk_daemon.exe(百度到是金山手机助手)占用了此进程,需要将该进程
3、结束该进程
4、如果发现一个进程,多次关闭无法关闭,可以尝试卸载该应用最后,如果还是无法连接设备,提示devices notfound,可以尝试如下命令:
adb kill-server
adb start-server
adb remount