ATX 使用 u2 实现九宫格图案解锁

codeskyblue · 2017年11月29日 · 最后由 liuyung 回复于 2019年11月16日 · 8247 次阅读

缩写

为了方便称呼,我一般会把 python 库uiautomator2简称为u2, 之前有文章简单的介绍过这个库https://testerhome.com/topics/10881

安装方法

pip install --pre -U uiautomator2

九宫格解锁

通常这种方式会用在很多的理财软件,开机密码,等等与安全有关的地方。那改如何用自动化的方式测试它呢。
其实实现起来也很简单。Uiautomator2 里面有一个 swipe 方法,可以通过传入多个点的坐标来实现解锁九宫格

说了这么多,直接上代码吧。

import uiautomator2 as u2

u = u2.connect() # 手机连接到PC即可
u.swipe_points([(0.235, 0.456), (0.503, 0.449), (0.509, 0.601), (0.777, 0.603), (0.771, 0.763), (0.222, 0.75)], 0.2)

其中(0.235, 0.456) 代表 X(23.5%) Y(45.6%). 这里用绝对坐标也可以。
最后的 0.2 代表每一次滑动的时间。

简单吧。

贴个效果图吧

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 9 条回复 时间 点赞

支持支持!请问那些点可以放在什么数据结构里面吗?

八个鸭鹿 回复

[[x1, y1], [x2, y2]]这种

codeskyblue 浅谈自动化测试工具 python-uiautomator2 中提及了此贴 12月24日 15:18
Jerry li atx 安卓集群管理 - 实践与扩展思路 中提及了此贴 01月22日 15:55

老大,我想直接用 adb shell swipe 滑动解锁九宫格,咋写呢? swipe 滑动 point A 到 pint B 后就释放了。

这个效果图是用什么做出来的

鸱夷子皮 回复

licecap + atx 投屏

如果同时要用 appium 是不是用不了 因为开了 appium 服务和 atx 服务之间 好像有点影响

问下,X 和 Y 可以不写死吗?

🔥🔥🔥 回复

可以当参数传进去呀

为什么 d.swipe_points([(0.501, 0.528),(0.244, 0.645),(0.496, 0.764),(0.753,0.649)], 0.1) 会报错 uiautomator2.exceptions.JsonRpcError: -32601 Method not found: data: , method: swipePoints,没有 swipe_points 这个函数呢?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册