基本语法
脚本以换行分割,一行一个命令。
每一行以一个命令开始,大部分命令与参数之间用空格分开,参数与参数之间用半角逗号分隔,以换行结束。格式为:命令<空格>参数<逗号>参数……
如:
delay 2000
tap 300,500
目前脚本支持整数(int)以及文本(string)类型,整数值可直接输入,字符串必须以半角双引号包括。
如:
tapByCd 1,"按钮"
目前脚本支持整数以及文本变量,变量命名规则为以$开始的文字,通常使用字母或字母加数字
如:
$abc=100
$str = "变量值"
系统内置了一些常量,您可以直接调用,常量为文本字符串,通常为大写,直接使用,不需要加双引号或$符号
如:
if DISPLAY_WIDTH>1280
……
endIF
您可以在任何位置添加注释,但是必须以双斜线“//”开始,在本行内,“//”之后的所有内容都会被忽略
如:
//我的注释
$abc = 100 //设置变量$abc的值为100
基本命令
$变量名称 = (int | string)变量值
变量赋值,添加变量并设定其值为,如果变量已存在,则修改其值。
示例:
$a = 30
设置要操作的APP包名,有很多其他命令是基于此处设置来实现的,例如打开APP、根据ID或文本的控件操作、判断前台应用
示例:
setAppName com.example.hello
模拟命令
点击位置 ,参数X、Y可以为整数或整数范围,整数范围格式如:1-10,将在1和10(包括)之间取一个随机数。在整个语法中,除了指定要求(如精确匹配)之外的所有int型都支持整数范围
示例:
tap 300,500
或
tap 300-400,500-550
tapByCd (int) 是否精确匹配,(string)寻找内容
根据文本(content-desc)寻找控件点击,参数一赋值“1”为精确匹配
示例:
tapByCd 1,"搜索"
tapByText (int) 是否精确匹配,(string) 寻找内容
根据文本(text) 寻找控件点击 ,参数一赋值“1”为精确匹配
示例:
tapByText 1,"搜索"
根据ID寻找控件并点击
示例: t
apById "viewId"
longTap (int) 按下时长,(int) X,(int) Y
长按指定位置
示例:
longTap 2000,100,100
swipe (int)开始X,(int)开始Y,(INT)结束X,(int)结束Y,(int)滑动时长
滑动屏幕
示例:
swipe 10,20,300,400,200
或在范围内随机取值:
swipe 10-20,30,300,400,200-800
在当前界面的第一个输入框粘贴指定文本
示例:
paste "你好"
pasteByCd (string)寻找内容,(string)文本
根据文本(content-desc)判断粘贴文本
示例:
pasteByCd "输入","要粘贴的文本"
pasteByText (string)寻找内容,(string)文本
根据文本(text)判断粘贴文本
示例:
pasteByText "输入","要粘贴的文本"
pasteById (string)控件ID,(string)文本
根据文本控件ID判断粘贴文本
示例:
pasteById "view1","要粘贴的文本"
流程控制
延迟指定的时间(毫秒)
示例:
delay 2000;
或在指定范围内随机延迟:
delay 2000-3000
for (int)循环次数 或 条件表达式
next
循环,可指定次数,或根据条件表达式判断,直到执行到循环尾部标志“next”
示例:
for 10
……区块内的代码将被循环执行
next
for $i<10
$i = $i+1
……区块内的代码将被循环执行
next
判断循环,根据条件表达式判断,直到执行到循环尾部标志“wend”
示例:
while $i<10
……区块内的代码将被循环执行
wend
跳到循环尾部,进行下一次循环。
必须处于循环区块内
if (int)参数A 运算符 (int)参数B
……
else
……
endIf
条件判断,目前只支持两个参数的整数型逻辑表达式,支持的符号和优先级顺序为:<(小于)、 >(大于)、 ==(等于)、 !=(不等于)
示例:
if $a>30
……条件成立执行的内容
else
……条件不成立执行的内容
endIf
或:
if $==$b
……条件成立执行的内容
endIf
全局操作
其他
random (int)最小数,(int)最大数,$变量名
从给定的范围取随机数,并赋值给变量
示例:
random 1,100,$b
检查前台APP是否为设定的APP,如果不是,则进行等待,如果是的话继续执行下一条命令
检查前台APP是否为设定的APP,并将结果写入参数变量,
结果:1.是 0.不是
示例:
isCurrentApp $a
查找屏幕区域内是否包含指定控件ID,并将结果写入到指定变量
结果:1.包含 0.不包含
示例:
findById "ID",$A
findByText (int) 是否精确匹配 ,(string)寻找内容,$变量名
查找屏幕区域内是否包含指定文本内容(text),并将结果写入到指定变量
结果:1.包含 0.不包含
示例:
findByText 1,"查找内容",$A
findByCd (int) 是否精确匹配 ,(string)寻找内容,$变量名
查找屏幕区域内是否包含指定文本内容(content-desc),并将结果写入到指定变量
结果:1.包含 0.不包含
示例:
findByCd 1,"查找内容",$A
常量
DISPLAY_WIDTH
DISPLAY_HEIGHT