# 点击

  点击包含,控件点击,和坐标点击

# click() 控件规则点击

视频教程 (opens new window) 通过R() 能找到的控件,会被点击
满足规则的节点 都将被点击

参数

local rule = R():id("android:id/list");
click(rule);
1
2

# :click() 控件结果点击

find()或finds() 检索出的结果可以直接用来点击

--案例:
 local rule = R():id("android:id/list");
 local view = find(rule);
 if view then
    view:click();
 end
1
2
3
4
5
6

# click() 坐标点击

通过坐标,可以点击屏幕上的任何一个地方

系统要求

  • 坐标点击要求 Android 系统必须 >= 7.0 才支持

参数

 -- 点击屏幕上 坐标 为 100,700 的地方
 click(100,700);

 -- 点击屏幕上 坐标 为 100,700 的地方,持续2秒
 click(100,700,2000);

1
2
3
4
5
6

# clickl() 控件规则 长按

满足规则的节点 都将被长按

通过R() 能找到的控件,会被长按
满足规则的节点 都将被长按

参数

--案例:
local rule = R():id("android:id/list");
clickl(rule);
1
2
3

# :clickl() 控件结果 长按

find()或finds() 检索出的结果可以直接用来点击

-- 案例:
 local rule = R():id("android:id/list");
 local view = find(rule);
 if view then
    view:clickl();
 end
1
2
3
4
5
6


# 滑动

# slid() 控件规则滑动

视频教程 (opens new window) 通过 控件规则滑动,所有能被检测到的控件,都会执行滑动,滑动距离一页

参数

--案例:
local rule = R():id("android:id/list");
   slid(rule,0); --向前滑动 !需要控件本身支持滑动
-- slid(rule,1); --向后滑动
1
2
3
4

# :slid() 控件结果滑动

find()或finds() 检索出的结果可以直接用来滑动

参数

--案例:
 local rule = R():id("android:id/list");
 local view = find(rule);
 if view then
    view:slid(0); --向前滑动 !需要控件本身支持滑动
  --view:slid(1); --向后滑动 !需要控件本身支持滑动   
 end
1
2
3
4
5
6
7

# slid() 坐标滑动

通过坐标 在屏幕上滑动

系统要求

  • 坐标滑动要求 Android 系统必须 >= 7.0 才支持

参数

-- 从坐标 100,100 滑动 到 坐标 700,700
slid(100,100,700,700);
 
-- 从坐标 100,100 滑动 到 坐标 700,700 耗费时间2000毫秒
slid(100,100,700,700,2000);
1
2
3
4
5

# gesture() 手势多指滑动

可以模拟多个手指的滑动,(曲线)支持贝塞尔曲线
什么是贝塞儿曲线? 两点之外的任意一个作用点,可使该条直线改变为曲线
在path 路径中qx 代表了作用点x 的坐标,qy代表了作用点y的坐标

系统要求

  • 坐标滑动要求 Android 系统必须 >= 7.0 才支持

参数

-- 该路径里包含两组 手势,同步执行
paths ={
    {   --模拟第一根手指滑动
        {x=200,y=200}, --将手指移动到屏幕200,200坐标
        {x=200,y=300,qx=250,qy=250}, --滑动坐标到200,300。 并且采用一次贝塞尔曲线,做曲线滑动
        {x=200,y=400,qx=150,qy=350,time =3000}  --滑动坐标到200,400。 并且采用一次贝塞尔曲线,做曲线滑动 ,time为这组路径滑动的时间
    },
    {   --模拟第二根手指滑动
        {x=600,y=200},--将手指移动到屏幕600,200坐标
        {x=600,y=400,time =2000} -- 滑动坐标到600,400,time为这组路径滑动的时间
    }
}
gesture(paths);
sleep(3000) -- 异步执行,等待3秒
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 文本输入

# input() 控件规则输入

可在传统Android app界面 与 html界面 进入文本输入
满足规则的控件 都将会被尝试输入内容

参数

--案例:
local rule = R():id("android:id/list");
input(rule,"要输入的内容");
1
2
3

# :input() 控件结果输入

满足规则的控件 都将会被尝试输入内容

参数

--案例:
 local rule = R():id("android:id/list");
 local view = find(rule);
 if view then
    view:input("要输入的文本");
 end
1
2
3
4
5
6

# 游戏无控件的输入方案

在游戏中没有 输入控件的情况
我们可以通过复制,长按,粘贴的组合方法输入

--案例:
putClipboard("存入剪贴板")
sleep(500)
click(100,200,3000) -- 长按输入框,直到出现粘贴
click(100,220) -- 点击出现粘贴的坐标 
1
2
3
4
5

# 模拟按键

# home() Home按键

可以模拟Android 设备的Home键

--案例:
home();
1
2

# back() 返回键

可以模拟Android 设备的返回键

--案例:
back();
1
2

# noti() 弹出通知栏

可以打开安卓通知栏

--案例:
noti();
1
2

# jobs() 最近任务

可以打开最近运行任务

--案例:
jobs();
1
2

# 捕获用户行为

# catchClick() 获取用户点击坐标

通过此方法,可以获取用户在屏幕上点击的坐标

参数

-- 捕获用户的点击
p = catchClick();
print(p.x);
print(p.y);

-- 捕获用户点击的同时,给用户提示
p = catchClick("可以填加提示");
print(p.x);
print(p.y);
1
2
3
4
5
6
7
8
9