安卓无障碍自动化
# 背景
很久之前看过,使用Appium自动化测试框架。 但是最近发现一个不需要开发者选项就可以用的思路。 这样是不是对用户更加友好呢? 一开始发现的无障碍
# 无障碍框架
- Auto.js : 停更
- Autox.js: 国产平替Auto.js
- Tasker : 需要开发者
- UiAutomator2 : 需要开发者
# Autox快速入门 (opens new window)
- 手机下载autox-6.5.5.apk,并安装。
- 手机开启无障碍模式。
- 电脑 vscode 下载Autox.js-VSCodeExt扩展插件。
- vscode 命令面板构建autox新项目。
- 在新项目下创建js文件编写代码。
- vscode 命令面板 启动autox服务。
- 手机进入autox并连接电脑服务器。
- vscode 按运行按钮执行。
# 踩坑过程
# 关于某些APP中, Click(x,y) 通过模拟坐标点击某些按钮无用 (opens new window)
查阅一些资料知道, APP可以识别出来, 点击按钮的是通过触屏还是内部软件调用, 估计用这个方法把Auto.js 脚本给ban了 解决了, autojs的触摸不会触发触屏的事件, 想要解决就只能通过模拟完整的触摸事件. 直接调用adb shell snedevent来输入事件了. 不过要想autojs执行就需要root, 不然没权限. 经过测试,在root之后,可以使用
RootAutomator.tap来模拟屏幕触发,也需要root权限。 tap方法同shell("su -c 'input tap " + x + " " + y + "'")也需要root权限。 经过查看资料tap这些操作在其他框架中也都需要root权限才能执行。
# 展望
有没有用于开发者的安卓手机呢? 来进行使用呢?
编辑 (opens new window)
上次更新: 2024/11/07, 14:51:14