# 点击
点击包含,控件点击,和坐标点击
# click() 控件规则点击
(opens new window)
通过R() 能找到的控件,会被点击
满足规则的节点 都将被点击
local rule = R():id("android:id/list");
click(rule);
1
2
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
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
2
3
4
5
6
# clickl() 控件规则 长按
满足规则的节点 都将被长按
通过R() 能找到的控件,会被长按
满足规则的节点 都将被长按
--案例:
local rule = R():id("android:id/list");
clickl(rule);
1
2
3
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
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
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
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
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
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
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
2
3
4
5
6
# 游戏无控件的输入方案
在游戏中没有 输入控件的情况
我们可以通过复制,长按,粘贴的组合方法输入
--案例:
putClipboard("存入剪贴板")
sleep(500)
click(100,200,3000) -- 长按输入框,直到出现粘贴
click(100,220) -- 点击出现粘贴的坐标
1
2
3
4
5
2
3
4
5
# 模拟按键
# home() Home按键
可以模拟Android 设备的Home键
--案例:
home();
1
2
2
# back() 返回键
可以模拟Android 设备的返回键
--案例:
back();
1
2
2
# noti() 弹出通知栏
可以打开安卓通知栏
--案例:
noti();
1
2
2
# jobs() 最近任务
可以打开最近运行任务
--案例:
jobs();
1
2
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
2
3
4
5
6
7
8
9