这里要说的 uiautomator2 是一个 python 库,用于 Android 的 UI 自动化测试,项目地址https://github.com/openatx/uiautomator2. 项目发源于 xiaocong 的uiautomator这个项目,新项目最大的改变要数原来手机必须数据线连接电脑的,但是使用了 uiautomator2 这个项目,就可以用 WiFi 代替 USB 连接电脑了。简单来说就是可以不用数据线了。
第一步还是需要手机连接到电脑的。电脑使用 adb 向手机推送了一个二进制文件: atx-agent. 然后启动这个程序,程序自身屏蔽掉 SIGHUP 信号,这样数据线断开之后,程序就不会被杀掉了。
第二步拔掉数据线,保持手机的 Wifi 开启,并且一直有电的状态。
第三步 atx-agent 实际上还是一个 http 服务器,运行在电脑上的 python 程序使用 HTTP 协议跟手机上 atx-agent 通信,atx-agent 随后启动 uiautomator.apk 这个应用,将收到的请求转换成 UiAutomator 的 UI 自动化操作。
push 文件到手机上?
这里使用的是 http 文件上传
从手机上 pull 文件到电脑上?
这里使用的是 http 的文件下载
adb install
如何实现?
先上传 apk 文件到手机上,然后调用pm install
达到一样的效果
还想要adb shell
终端怎么办?
为此我专门写了一个网页版的 web terminal, 用的是流行的 term.js
这个项目目前还属于火热的开发状态,随时关注项目主页的 README https://github.com/openatx/uiautomator2. 里面有足够多的信息,保证让你可以学会如何使用。
还有更多问题欢迎留言。
前排点赞!
通过 minicap 加快截图速度
get png as raw data
屏幕截图的二进制流怎么实现的?直接截取的 minicap 的吗?
关注关注!!
嗯,minicap 截取单张图命令试过,效率还可以。
我设想能不能在安卓中直接把 minicap 吐出的数据流拿出来直接放内存,然后通过安卓 APP 集成的 opencv
去进行模板匹配和图片对比,主要是为了避免把截屏保存到 sdcard 再读入内存进行模板匹配,提升识别效率。
赞 tester 福音
我怎么用的 uiautomator 本身就可以直接用 wifi 连接?
这个轮子有什么不一样呢
ut2 在游戏里的作用好像比较少
atx-agent 这个可以跟谷歌原生的 UIAUtomator2 一起使用吗,用 JAVA?
这个是 用的 google 原生的 uiautomator 还是 uiautomator2 吗?
一开始我是不太看好 atx 的,codeskyblue 大神慢慢的把 atx 越做越好。
运行 python -m uiautomator2 init 就报 ssl 错误,如下
File "D:\TestTools\Python36_3\lib\site-packages\requests\adapters.py", line 506, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='github.com', port=443): Max retries exceeded with url: /codeskyblue/stf-binaries/raw/master/node_modules/minicap-prebuilt/prebuilt/arm64-v8a/lib/android-23/minicap.so (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)'),))
有人遇到过吗
请问在执行 init 的时候报这个错,咋办??是 android 设备号中出现&符号导致的,如何解决呢??
你好,python uiautomator2 对于安卓 P 版本是否支持呢?如果不支持的话,后续有计划支持吗?
请问博主,用什么命令从手机上 pull 文件到电脑上?http 的文件下载如何实现?
您好~我想請問一下~~~我要想要 build atx-agent, 我在 ubuntu 有成功了, 但執行./atx-agent -d 沒有什麼反應, 這是為什麼呢,
只有出現 usage 的訊息
有的~~我也有 build 成 arm 的放到手機上使用, 但仍然會這樣, 看起來好像無法讀到外部 parameter 才會一直出現 help 內的訊息
这个项目能够 WiFi 连接了,有几个问题就是 1.如何测试同一个局域网的多台手机,判断有点复杂,要考虑哪些 ip 在线,哪些是手机等。这个可以考虑有大佬做个方法哇 2.还有重启手机后手机端程序掉线,比较麻烦,因为很多手机 adb 不稳定,经常检测不到用 adb devices.这个能否用后台守护进程把挂掉的程序拉起来解决,因为 ui2 部分程序还是在线的,只掉了一部分程序。理论上是可以离线拉起整个程序的 3.安装软件的那个命令使用有些繁琐,看了文档也不知道如何用。4.disable_popups 功能太好用了,希望能有稳定版出来,哈哈
ui2 能不能把掉线的 ATX 拉起来?
init 失败,怎么解决?
网易的镜像地址挂了吧,用 github 的
http://url/dump/hierarchy 为什么返回值为 404