本文基于读者熟悉或了解JavaScript
函数 | 功能 |
---|---|
click(x,y) | click(500,500) 点击屏幕x=500px,y=500px的点 |
press(x,y,mills) | press(200,200,1000) 按住(200,200)1秒钟 |
sleep(mills) | sleep(1000) 程序暂停1秒 |
press(x,y,1); sleep(50); press(x,y,1) | 双击 |
swipe(x1,x2,y1,y2,t) | swipe(100,300,600,900,1000); 从A点(100,300)滑动到B点(600,900)耗时设置1秒 |
auto.waitFor() | 等待申请无障碍权限,一般用于脚本开头 |
Tap(x,y) | 与click(x,y)一样,Android7.0以下使用,且需要root |
Swipe(x1,x2,y1,y2,t) | 与swipe(x1,y1,x2,y2,t)一样,Android7.0以下使用,且需要root |
console.verbose | 灰色日志 |
console.info | 绿色日志 |
console.warn | 蓝色日志 |
console.error | 红色日志 |
toast(str) | 气泡提示 ,str为内容 |
serScreenMetrics(width,height) | 设置脚本运行屏幕的宽高 宽不一致,会自动缩放运行的坐标值 |
var w = device.height | 获取屏幕高度px |
var w = device.width | 获取屏幕宽度px |
console.show(); | 显示控制台 |
console.hide(); | 隐藏控制台 |
console.rawInput(); | 等待控制台输入内容、并等待点击确定 |
dialog.confirm(title ,content) | 弹出确认框,点击确定返回true,点击取消返回false |
engines.execScriptFile(path) | 启动path对应的脚本 可用相对路径:./xx.js同目录的脚本 |
engines.stopAll() | 停止所有脚本,包括自身 |
exit() | 停止当前脚本 |
app.launchApp(appName) | 通过APP名启动app |
app.launchApp(pkgName) | 通过包名启动app |
app.uninstall(pkgName) | 通过包名卸载app |
app.openUrl(url) | 打开浏览器,并打开指定url |
back() | 返回键功能 |
home() | home键功能 |
random(min ,max) | 返回随机数[min ,max] |
toastLog(message) | toast(str)和log(str)的合并 |
device.vibrate(mills) | device.vibrate(1000)手机震动1秒 |
device.keepScreenOn(mill) | 让手机保持常亮,不设置时间则为常亮,设置时间,即为指定常亮时间 |
setClip(text) | 设置剪贴板内容 |
getClip() | 获取粘贴板的内容 |
setInterval(function(){} , mills) | 设置指定间隔时间,的循环体 |
在auto.js软件中有直接获取到控件信息的功能,在auto.js软件主页面,点击右上角,打开侧拉菜单,大致中间位置的悬浮窗打开。这个auto.js的悬浮窗就含有获取控件信息的功能。点击悬浮窗我们可以看到有5个功能,中间蓝色的就是用于查看控件信息的功能,点击之后,会让你选择用布局范围分析和布局层次分析
比较主要的控件信息有id即控件的id属性,text控件的文本属性,bounds控件的边框位置,desc控件的desc值,有些控件会把text控件放空,并把上面的文本写入desc值。clickable/longClickable控件是否可以点击/长按,如果控件的clickable为false那么点击也没用。checked控件是否选中,depth在第几层次,indexInParent在父控件中是第几个.
api | 功能 |
---|---|
id(“a”).text(“abc”).findOne().click(); | 选择id属性为a的,text属性为abc的控件,直到找到一个符合以上条件的控件,对其点击。 |
desc() | 匹配desc值为传参的控件 |
descContains(“cd”) | |
descStartsWith() | |
descEndsWith() | |
descMatches() | 用于传入正则表达式 匹配查找对应的控件 |
text() | |
textContains() | |
textStartsWith() | |
textEndsWith() | |
textMatches() | |
id() | |
idContains() | |
idStartsWith() | |
idEndsWith() | |
idMatches() | |
className | |
package | |
clickable(true) | 可点击选择器 |
checkable() | 是否可勾选 |
selected() | 是否已选中 |
longClickable() | 是否可长按 |
enabled() | 控件是否已启用 - 选择器 |
scrollable() | 选择器:控件是否可滑动 |
editable() | 选择器:控件是否可编辑 |
- | - |
bounds(x1,y1,x2,y2) | 控件位置范围 ,四个整数值组成前两个值为控件长方形左上角的坐标,后两个值是控件右下角点的坐标 |
boundsInside(x1,y1,x2,y2) | boundsInside(233,233,666,666) |
filter(function(w){return w.text().length==10}) | 过滤出text属性有10个字符的控件 |
findOne() | 寻找屏幕上符合前面控件选择器的函数,直到出现,并返回第一个出现的控件,另外他还可以传入一个参数—最大查找时间,即位,如果到了时间还没有找到的话,直接返回undifined,以继续脚本 |
findOnce() | 函数只会寻找一次,如果当前屏幕上没有,则直接返回null,他也可以传入一个参数,用于写,需要获取当前屏幕上第几个符合条件的内容,如果当前屏幕上的个数,不够获取的个数,则返回null |
untilFind() | 他会循环寻找,至少要找到一个才会返回合集 |
find() | 选择器转换成合集 |
api | 功能 |
---|---|
setText() | 输入框内内容:id(“edit”).findOne().setText(“123456”); |
控件.parent() | 获得到这个函数的父控件函数 |
child(第几个) | 获取到他的第几个子控件,注意序号从零开 |
children() | 用于返回这个控件的所有子控件 |
findByText(str) | 需要传入一段文<字符串>,这个函数返回他所有子控件或者孙控件中text或者desc属性中包含这段文字的所有控件 |