赞
踩
对手机的操作存在几种方式:
后面的是衍生的,并不是主要操作。
5. 多击
6. 多手势
关于控件:可以通过控件拿到坐标,再偏移坐标获得我们想要做的手势。
核心内容 |
---|
坐标 (x,y):屏幕上任意一个点的x轴和y轴。原点(0,0)在左上角。从左往右 x轴越来越大。从上往下 y轴越来越大。1080*1920分辨率的手机屏幕中,左上角(0,0),右上角(1080,0),左下角(0,1920),右下角(1080,1920)。 |
手势:点击、长按、滑动、连续点击、多个地方同时点击、多个地方同时滑动都是手势。坐标可以决定手势的位置,包括起始位置、中间位置(可以有多个)、终点位置。 |
手势时长:和名字一样,很多手势都是有时间限制的,按下超过1秒判断为长按,按下0.1秒(100ms)判断为点击。 |
setScreenMetrics(width, height)
width <number> 屏幕宽度,单位像素
height <number> 屏幕高度,单位像素
设置脚本坐标点击所适合的屏幕宽高。如果脚本运行时,屏幕宽度不一致会自动放缩坐标。
设置分辨率可以让同样的坐标
在不同分辨率的设备上
的操作位置相同
。
可以使用以下函数:
1、需要无障碍权限(Android 7.0):click(x, y)
press(x, y, duration)
2、需要root(兼容低版本安卓): Tap(x, y)
RootAutomator.tap(x, y[, id])
RootAutomator.press(x, y, duration[, id])
RootAutomator.touchDown(x, y[, id]) RootAutomator.touchMove(x, y[, id]) RootAutomator.touchUp([id])
使用Shell命令
初级教程只讲无障碍,不讲root。
click
代码:
// 点击(x,y)为(400,500)的坐标位置
click(400,500);
运行结果:一闪而过,点击了一下 x轴为400,y轴为500的位置。
点击时的截图
press
时间参数需要很小,最好小于10,不然可能会被判定为长按。官方的longClick()函数的值约为600。
只有在长按执行完成(大约600毫秒)时脚本才会继续执行。
代码:
// 按下(x,y)为(500,500)的位置,按下去的时间为 1毫秒
press(500,500,1);
运行结果:
函数:
click(x, y)
x <number> 要点击的坐标的x值
y <number> 要点击的坐标的y值
模拟点击坐标(x, y),并返回是否点击成功。只有在点击执行完成后脚本才继续执行。
press(x, y, duration)#
x <number> 要按住的坐标的x值
y <number> 要按住的坐标的y值
duration <number> 按住时长,单位毫秒
模拟按住坐标(x, y), 并返回是否成功。只有按住操作执行完成时脚本才会继续执行。
如果按住时间过短,那么会被系统认为是点击;如果时长超过500毫秒,则认为是长按。
一般而言,只有按住过程中被其他事件中断才会操作失败。
可以使用以下函数:
1、需要无障碍权限(Android 7.0): longClick(x, y)
press(x, y, duration)
2、需要root(兼容低版本安卓): RootAutomator.press(x, y, duration[, id])
RootAutomator.longPress(x, y[\, id])
RootAutomator.touchDown(x, y[, id]) RootAutomator.touchMove(x, y[, id]) RootAutomator.touchUp([id])
使用Shell命令
longClick
长按,和click
很像,点击时间更长,其他都一样。
代码:
// 长按(约为600毫秒)(x,y)为(500,800)的坐标位置
longClick(500,800);
运行结果:
点击时的截图
press
时间参数需要稍大,不然会被判定为点击。
代码:
// 按下(x,y)为(500,500)的位置,按下去的时间(第三个参数)为 500毫秒
press(300,500,500);
结果:
由于长按的位置没有可以长按的操作,所以没有触发其他事件。
函数:
longClick(x, y)
x <number> 要长按的坐标的x值
y <number> 要长按的坐标的y值
模拟长按坐标(x, y), 并返回是否成功。只有在长按执行完成(大约600毫秒)时脚本才会继续执行。
一般而言,只有长按过程中被其他事件中断(例如用户自行点击)才会长按失败。
press(x, y, duration)#
x <number> 要按住的坐标的x值
y <number> 要按住的坐标的y值
duration <number> 按住时长,单位毫秒
模拟按住坐标(x, y), 并返回是否成功。只有按住操作执行完成时脚本才会继续执行。
如果按住时间过短,那么会被系统认为是点击;如果时长超过500毫秒,则认为是长按。
一般而言,只有按住过程中被其他事件中断才会操作失败。
可以使用以下函数:
1、需要无障碍权限(Android 7.0):swipe(x1, y1, x2, y2, duration)
gesture(duration, [x1, y1], [x2, y2], ...)
gestures([delay1, duration1, [x1, y1], [x2, y2], ...], [delay2, duration2, [x3, y3], [x4, y4], ...], ...)
2、需要root(兼容低版本安卓):Swipe(x1, y1, x2, y2, [duration])
RootAutomator.swipe(x1, x2, y1, y2[, duration, id])
RootAutomator.touchDown(x, y[, id]) RootAutomator.touchMove(x, y[, id]) RootAutomator.touchUp([id])
使用Shell命令
swipe
代码:
// 从(500,800)的位置滑动到(500,300)的位置,使用1000毫秒(1秒)的时间来完成滑动
swipe(500,800,500,300,1000);
结果:
gesture
代码:
// 从(500,800)的位置滑动到(500,300)的位置,再移动到(200,300)的位置,使用1000毫秒(1秒)的时间来完成滑动,会被Autojs进行优化
gesture(1000,[500,800],[500,300],[200,300]);
结果:
函数:
swipe(x1, y1, x2, y2
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。