当前位置: 首页 > 工具软件 > AutoJS > 使用案例 >

AutoJS一文精通AutoJS脚本教程详解

令狐声
2023-12-01

本文基于读者熟悉或了解JavaScript


1.基础

  • 屏幕坐标系,屏幕左上角为原点(0,0),向右为x轴正向,向下为y轴正向
  • 单位为px
  • 其他大部语法与JS相似或一致

2.常用api

函数功能
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)设置指定间隔时间,的循环体

3.原生控件有关api

在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()选择器转换成合集

4.控件

api功能
setText()输入框内内容:id(“edit”).findOne().setText(“123456”);
控件.parent()获得到这个函数的父控件函数
child(第几个)获取到他的第几个子控件,注意序号从零开
children()用于返回这个控件的所有子控件
findByText(str)需要传入一段文<字符串>,这个函数返回他所有子控件或者孙控件中text或者desc属性中包含这段文字的所有控件
 类似资料: