一个轻量级【简洁的免ROOT自动化Andorid端脱机测试框架】 基于无障碍服务 方便测试二次开发导入即可
并不是 是一种补充。原本就是个人日常使用的工具。我不太喜欢那些现成的工具和框架。 明明我只想写一个轻轻的点击事件却要下载一堆文件和依赖。 又要连接电脑又要下载PC客户端,还要学会写另外一种脚本语言(js/lua/python)来契合 我是使用纯java实现一个版本 只关注点击
更轻量级 只专注与自动化点击测试 不需要考虑更多
1.相对于Appium不需要链接电脑
2.相对于Auto.js更加轻量级
3.核心类只有5个,但是功能齐全 方便定制
4.纯java实现 依赖于无障碍服务
1.点击事件 传入类型
public static boolean actionClickNode(String viewId,String text,int index,ClickAction clickAction,long sleep)
2.单击
public static boolean performAutoClick(AccessibilityNodeInfo nodeInfo)
3.双击
public static boolean performAutoDoubleClick(AccessibilityNodeInfo nodeInfo)
4.滑动
不建议使用这个滑动 很怪 还是基于GestureDescription的path滑动好用
public static boolean performAutoSlide(AccessibilityNodeInfo nodeInfo, boolean direction)
5.输入文本
public static boolean inputAutoText(AccessibilityNodeInfo nodeInfo, String text)
1.回到桌面
public static void goAutoHome(long sleep)
2.按下返回按钮
public static void performAutoBack(long sleep)
GestureDescription支持path和持续时间
在这个基础上可以做出很多动作
比如path只是一个点 就是单击 来两次就是双击 持续时间比较长是长按
比如path是一段段长距离的线 加上时间就是滑动
比如path是三条滑动 就可以实现类似小米那种三指截屏操作
public static boolean useGestureClickPoint(Point point)
基于点击任意位置操作 可以点击任意控件,我们先找到控件的中心就行
Rect rect = new Rect();
info.getBoundsInScreen(rect);
useGestureClickPoint(new Point(rect.centerX(), rect.centerY()));
对于 webview 和 flutter 等框架做起来的view界面,会由于缺少对应的ViewId导致难以定位。
为此我们只能通过几种方式来确定: