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

itabc_ji 2023-12-17 PM 881℃ 0条

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


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秒钟
sl~eep(mills)sl~eep(1000) 程序暂停1秒
press(x, y, 1); sl~eep(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为内容
setScreenMetrics(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 Function功能描述
id("a").text("abc").findOne().click();选择id属性为a,text属性为abc的控件,找到一个符合条件的控件,对其进行点击
desc()匹配desc值为传参的控件
descContains("cd")匹配desc包含指定字符串的控件
descStartsWith()匹配desc以指定字符串开头的控件
descEndsWith()匹配desc以指定字符串结尾的控件
descMatches()用于传入正则表达式,匹配查找对应的控件
text()匹配text值为传参的控件
textContains()匹配text包含指定字符串的控件
textStartsWith()匹配text以指定字符串开头的控件
textEndsWith()匹配text以指定字符串结尾的控件
textMatches()用于传入正则表达式,匹配查找对应的控件
id()匹配id值为传参的控件
idContains()匹配id包含指定字符串的控件
idStartsWith()匹配id以指定字符串开头的控件
idEndsWith()匹配id以指定字符串结尾的控件
idMatches()用于传入正则表达式,匹配查找对应的控件
className匹配指定className的控件
package匹配指定package的控件
clickable(true)可点击选择器
checkable()是否可勾选
selected()是否已选中
longClickable()是否可长按
enabled()控件是否已启用 - 选择器
scrollable()控件是否可滑动 - 选择器
editable()控件是否可编辑 - 选择器
--
bounds(x1, y1, x2, y2)控件位置范围,四个整数值组成,前两个值为左上角坐标,后两个值为右下角坐标
boundsInside(x1, y1, x2, y2)控件位置在指定范围内
filter(function(w){return w.text().length==10})过滤出text属性有10个字符的控件
findOne()寻找屏幕上符合前面控件选择器的函数,返回第一个符合条件的控件,可传入最大查找时间
findOnce()寻找一次,如果没有符合条件的控件,返回null,可传入参数指定获取第几个符合条件的控件
untilFind()循环寻找,至少找到一个符合条件的控件才会返回合集
find()将选择器转换成控件集合

4.控件

API Function功能描述
setText()输入框内内容:id("edit").findOne().setText("123456");
控件.parent()获得到这个函数的父控件函数
child(第几个)获取到他的第几个子控件,注意序号从零开始
children()用于返回这个控件的所有子控件
findByText(str)需要传入一段文本字符串,这个函数返回所有子控件或孙控件中text或desc属性中包含这段文字的所有控件
标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~