auto.js 中文文档 下载 App

点击、长按、滑动、拖拽——屏幕坐标与控件两种操作模式

两套操作模式

基于控件(推荐)

通过选择器定位控件后操作:

text("签到").click();           // 点击文本为「签到」的控件
id("btn_submit").click();       // 点击 ID 为 btn_submit 的控件
className("Button").click();    // 点击第一个 Button 类型控件

优点:不受屏幕分辨率、控件位置变化影响,换设备也能用。缺点:目标 APP 必须暴露控件树信息(大多数 APP 可以,少数游戏和特殊 APP 不行)。

基于坐标(兜底方案)

直接操作屏幕坐标:

click(500, 1000);               // 点击坐标 (500, 1000)
longClick(500, 1000);           // 长按
press(500, 1000, 500);          // 按住 500ms

优点:任何界面都能用(包括游戏画面)。缺点:坐标是硬编码的,换设备或 APP 界面改版就失效。

查看坐标

悬浮窗 → 「布局分析」→ 左上角会显示当前触摸位置坐标,或者在 Auto.js 设置里开启「显示指针位置」(开发者选项)。

滑动

// 从 (500, 1500) 滑到 (500, 500),耗时 300ms
swipe(500, 1500, 500, 500, 300);

// 从一个控件滑到另一个控件
var btn = text("上一页").findOne();
var btn2 = text("下一页").findOne();
btn2.click(); // 直接点更简单,滑动常用于长列表

拖拽

// 从起点拖到终点,拖拽模拟
drag(100, 500, 800, 500, 500);

多点触控(手势)

// 模拟双指捏合缩放
gesture(1000, [
  [200, 500],  // 第一根手指起始
  [800, 500],  // 第二根手指起始
], [
  [400, 500],  // 移动到
  [600, 500],
]);

等待再操作

控件可能需要加载时间:

// 最多等 10 秒,找到就点
text("确认").waitFor(10000).click();

// 等待界面稳定
sleep(2000); // 固定等 2 秒

sleep vs waitFor:sleep 是盲等,waitFor 是智能等(找到目标立即返回)。能用 waitFor 就别用 sleep。