一开始使用 minitouch 纯粹是为了适应一些特殊场景的需要,例如高效的设备操作、模拟硬件操作等等。(同时也为了解决这个问题 https://testerhome.com/topics/17247)
但 minitouch 的使用体验实在是有点太差了,每次都要重复给手机安装指定版本的 minitouch、建立 socket、然后再编辑可读性极差的操作命令(形如'd 0 500 500 50\nc\nd 1 500 600 50\nw 5000\nc\nu 0\nu 1\nc\n'
),当遇上多手机操作的时候更是抓瞎。
所以,开发了这个 minitouch 的 python 操作库,用于简化 minitouch 的使用流程。虽然 minitouch 的用途还是比较局限,但是想着可能有人会需要这个东西,就把它共享在这里吧~
该项目将对 minitouch 进行封装,致力于降低使用成本,使这个库能够更好的被利用起来。
d 0 150 150 50\nc\nu 0\nc\n
是个非常繁琐的流程。
from pyminitouch import safe_device
_DEVICE_ID = '123456F'
device = MNTDevice(_DEVICE_ID)
# single-tap
device.tap([(400, 600)])
# multi-tap
device.tap([(400, 400), (600, 600)])
# set the pressure, default == 100
device.tap([(400, 600)], pressure=50)
# 可以直接用简洁的API调用minitouch提供的强大功能!
更多使用方式见 demo.py
请使用 python3
pip install pyminitouch
其实跟 TLDR 提到的"以前的"流程是一样的。可以到项目主页看看源码 https://github.com/williamfzc/pyminitouch
minitouch 是 openstf 基于 ndk + android 开发的用于模拟人类点击行为的操作库。这个库以高稳定性、反应快著称,比起 adb 操作与 uiautomator 都要更灵敏,被广泛用于 android 设备的精细操作。
然而,因为其使用与安装的方式都较为繁琐,且无法定位到元素,使得它在自动化的应用领域上远远比不上 uiautomator。
但他的实现机制与其他模拟方式不同,能够真正模拟物理点击的效果(uiautomator 属于软件层面上的模拟),更加接近真实点击的效果。举个例子,打开 开发者模式 - 显示点击位置,同类产品在模拟点击时不会有"小圆圈",而 minitouch 有,表现与真实人手点击一致。
欢迎在评论或者 github 提 issue 给我 :)