Skip to content

命令速查表

所有命令速查表

交互命令(13 个)

命令作用示例
tapOn点击元素tapOn: "登录"
longPressOn长按元素longPressOn: "文件"
doubleTapOn双击元素doubleTapOn: "图片"
swipe滑动swipe: { direction: UP }
scroll滚动一次scroll
scrollUntilVisible滚动直到可见进阶篇
inputText输入文字inputText: "hello"
eraseText删除文字eraseTexteraseText: 10
pressKey按键pressKey: Home
back返回back
hideKeyboard收起键盘hideKeyboardhide keyboard
copyTextFrom复制元素文字copyTextFrom: { id: "code" }
pasteText粘贴文字pasteText

验证命令(4 个)

命令作用超时
assertVisible验证元素可见17 秒
assertNotVisible验证元素不可见7 秒
assertTrue验证脚本条件
extendedWaitUntil自定义等待自定义

App 管理(6 个)

命令作用
launchApp启动 App
stopApp停止 App
killApp强杀 App
clearState清除 App 数据
openLink打开链接
setPermissions设置权限

流程控制(4 个)

命令作用
repeat循环执行
retry失败重试
runFlow子流程(内联命令或引用文件)
branch条件分支

数据与脚本(10 个)

命令作用
defineVariables定义变量
evalScript执行 JS 表达式
runScript执行 JS(可注入变量)
shellevalScript 的简写
httpRequest发起 HTTP 请求
setClipboard设置剪贴板
inputRandomText随机文字
inputRandomNumber随机数字
inputRandomEmail随机邮箱
inputRandomPersonName随机人名

设备控制(5 个)

命令作用
sleep延时等待
setLocation设置 GPS 位置
setAirplaneMode设置飞行模式
takeScreenshot截图
waitForAnimationToEnd等待动画结束

所有按键名称

以下按键名称可以在 pressKey 命令中使用:

导航键

按键说明
Home主页键
Back返回键
Menu菜单键
Search搜索键
Enter回车/确认
TabTab 键
EscapeESC 键
DpadUp方向键 ↑
DpadDown方向键 ↓
DpadLeft方向键 ←
DpadRight方向键 →
DpadCenter方向键中心
PageUp上翻页
PageDown下翻页

编辑键

按键说明
Delete删除键(退格)
Backspace退格键
ForwardDelete向前删除
Space空格键

音量与电源

按键说明
VolumeUp音量加
VolumeDown音量减
Power电源键
Lock锁屏

电话

按键说明
Call接听
EndCall挂断

字母与数字

按键说明
A ~ Z字母键
0 ~ 9数字键
Numpad0 ~ Numpad9小键盘数字

符号

按键说明
Comma逗号 ,
Period句号 .
Grave反引号 `
Minus减号 -
Equals等号 =
Plus加号 +
LeftBracket左方括号 [
RightBracket右方括号 ]
Backslash反斜杠 \
Semicolon分号 ;
Apostrophe撇号 '
Slash斜杠 /
At@ 符号
Star星号 *
Pound井号 #

其他

按键说明
Camera相机键
Clear清除键

默认超时与限制

参数默认值说明
元素查找超时17,000 msassertVisible 等命令的默认等待时间
可选元素查找超时7,000 msoptional: true 时的等待时间
界面稳定超时1,500 ms点击/滑动后等待界面稳定的时间
脚本执行超时200 msJS 表达式求值超时
动画等待超时15,000 mswaitForAnimationToEnd 默认超时
滑动默认时长400 msswipe 默认持续时间
连续点击间隔100 mstapOndelay 默认值
滚动查找超时20,000 msscrollUntilVisible 默认超时
滚动默认速度40scrollUntilVisible 的 speed 参数(0~100)
循环最大次数1,000 次repeat 最大循环次数
循环默认时长30 分钟repeat 不设 duration 时的最大时长
重试默认次数1 次retry 不设 maxRetries 时的默认值
重试最大次数3 次retrymaxRetries 上限
单命令异常处理重试5 次异常处理器对单条命令的最大重试次数
最大删除字符数50 个eraseText 默认删除上限
界面稳定等待上限30,000 mswaitToSettleTimeoutMs 最大值
HTTP 重试间隔3,000 mshttpRequest retry 默认间隔

常见问题

Q: tapOn 找不到元素怎么办?

  1. 确认文字完全匹配(包括大小写、空格)
  2. 尝试使用正则:tapOn: "登录.*"
  3. 尝试使用 ID:tapOn: { id: "btn_login" }
  4. 加上 optional: true 让它不报错

Q: 如何在不同设备上适配?

使用百分比坐标代替绝对坐标:

yaml
# 不推荐(只适用于特定分辨率)
- tapOn: { point: "540,1200" }

# 推荐(任何分辨率都生效)
- tapOn: { point: "50%,60%" }

Q: sleep 的随机范围怎么选?

  • 快速操作间隔:sleep: [500, 1500](0.5~1.5 秒)
  • 模拟阅读浏览:sleep: [3000, 8000](3~8 秒)
  • 等待加载完成:sleep: [5000, 10000](5~10 秒)

Q: chance 和 when 能同时用吗?

同时写时,when 生效,chance 被忽略。它们是二选一的关系——chance: 0.3 其实等价于 when: { true: "${Math.random() < 0.3}" },只是写起来更方便。

Q: repeat 的 duration 单位是什么?

毫秒(ms)。常用换算:

  • 1 秒 = 1,000
  • 1 分钟 = 60,000
  • 10 分钟 = 600,000
  • 30 分钟 = 1,800,000
  • 1 小时 = 3,600,000

Q: 变量在子流程中修改后,外面能看到吗?

能看到evalScript 修改的变量存在全局作用域中,子流程中修改后外面立刻生效。

Q: httpRequest 的 jsonPath 怎么写?

用点号分隔的路径,从 JSON 根节点开始:

json
{ "data": { "user": { "name": "张三" } } }

对应 jsonPath:data.user.name,结果为 "张三"

VMOS Edge 团队出品