Auto.js⼊门:简单脚本程序编写(基于控件的操作1)
Auto.js⼊门:简单脚本程序编写(基于控件的操作1)
基于控件的操作指的是选择屏幕上的控件,获取其信息或对其进⾏操作。对于⼀般软件⽽⾔,基于控件的操作对不同机型有很好的兼容性;但是对于游戏⽽⾔,由于游戏界⾯并不是由控件构成,⽆法采⽤本章节的⽅法,也⽆法使⽤本章节的函数。
基于控件的操作依赖于⽆障碍服务,因此最好在脚本开头使⽤auto()函数来确保⽆障碍服务已经启⽤。如果运⾏到某个需要权限的语句⽆障碍服务并没启动,则会抛出异常并跳转到⽆障碍服务界⾯。这样的⽤户体验并不好,因为需要重新运⾏脚本,后续会加⼊等待⽆障碍服务启动并让脚本继续运⾏的函数。
您也可以在脚本开头使⽤"auto";表⽰这个脚本需要⽆障碍服务,但是不推荐这种做法,因为这个标记必须在脚本的最开头(前⾯不能有注释或其他语句、空格等),我们推荐使⽤auto()函数来确保⽆障碍服务已启⽤。
auto([mode])
mode模式
检查⽆障碍服务是否已经启⽤,如果没有启⽤则抛出异常并跳转到⽆障碍服务启⽤界⾯;同时设置⽆障碍模式为mode。mode的可选值为:
fast快速模式。该模式下会启⽤控件缓存,从⽽选择器获取屏幕控件更快。对于需要快速的控件操作的脚本可以使⽤该模式,⼀般脚本则没有必要使⽤该函数。
normal正常模式,默认。
如果不加mode参数,则为正常模式。
建议使⽤auto.waitFor()和auto.setMode()代替该函数,因为auto()函数如果⽆障碍服务未启动会停⽌脚本;⽽auto.waitFor()则会在在⽆障碍服务启动后继续运⾏。
⽰例:
auto(“fast”);
⽰例2:
auto();
auto.waitFor()
检查⽆障碍服务是否已经启⽤,如果没有启⽤则跳转到⽆障碍服务启⽤界⾯,并等待⽆障碍服务启动;当⽆障碍服务启动后脚本会继续运⾏。
auto.setMode(mode)
mode模式
设置⽆障碍模式为mode。mode的可选值为:
fast快速模式。该模式下会启⽤控件缓存,从⽽选择器获取屏幕控件更快。对于需要快速的控件查看和操作的脚本可以使⽤该模式,⼀般脚本则没有必要使⽤该函数。
normal正常模式,默认。
click(text[, i])
js脚本编程入门text要点击的⽂本
i如果相同的⽂本在屏幕中出现多次,则i表⽰要点击第⼏个⽂本, i从0开始计算
返回是否点击成功。当屏幕中并未包含该⽂本,或者该⽂本所在区域不能点击时返回false,否则返回true。
该函数可以点击⼤部分包含⽂字的按钮。例如主界⾯下⽅的"", “联系⼈”, “发现”, “我"的按钮。
通常与while同时使⽤以便点击按钮直⾄成功。例如:
while(!click(“扫⼀扫”));
当不指定参数i时则会尝试点击屏幕上出现的所有⽂字text并返回是否全部点击成功。
i是从0开始计算的, 也就是,click(“啦啦啦”, 0)表⽰点击屏幕上第⼀个"啦啦啦”,click(“啦啦啦”, 1)表⽰点击屏幕上第⼆个"啦啦啦"。
⽂本所在区域指的是,从⽂本处向其⽗视图寻,直⾄发现⼀个可点击的部件为⽌。
click(left, top, bottom, right)
left要点击的长⽅形区域左边与屏幕左边的像素距离
top要点击的长⽅形区域上边与屏幕上边的像素距离
bottom要点击的长⽅形区域下边与屏幕下边的像素距离
right要点击的长⽅形区域右边与屏幕右边的像素距离
注意,该函数⼀般只⽤于录制的脚本中使⽤,在⾃⼰写的代码中使⽤该函数⼀般不要使⽤该函数。
点击在指定区域的控件。当屏幕中并未包含与该区域严格匹配的区域,或者该区域不能点击时返回false,否则返回true。
有些按钮或者部件是图标⽽不是⽂字(例如发送朋友圈的照相机图标以及QQ下⽅的消息、联系⼈、动态图标),这时不能通过click(text, i)来点击,可以通过描述图标所在的区域来点击。left, bottom, top, right描述的就是点击的区域。
⾄于要定位点击的区域,可以在悬浮窗使⽤布局分析⼯具查看控件的bounds属性。
通过⽆障碍服务录制脚本会⽣成该语句。
longClick(text[, i]))
text要长按的⽂本
i如果相同的⽂本在屏幕中出现多次,则i表⽰要长按第⼏个⽂本, i从0开始计算
返回是否点击成功。当屏幕中并未包含该⽂本,或者该⽂本所在区域不能点击时返回false,否则返回true。
当不指定参数i时则会尝试点击屏幕上出现的所有⽂字text并返回是否全部长按成功。
scrollUp([i])
i要滑动的控件序号
到第i+1个可滑动控件上滑或左滑。返回是否操作成功。屏幕上没有可滑动的控件时返回false。
另外不加参数时scrollUp()会寻⾯积最⼤的可滑动的控件上滑或左滑,例如消息列表等。
参数为⼀个整数i时会到第i + 1个可滑动控件滑动。例如scrollUp(0)为滑动第⼀个可滑动控件。
scrollDown([i])
i要滑动的控件序号
到第i+1个可滑动控件下滑或右滑。返回是否操作成功。屏幕上没有可滑动的控件时返回false。
另外不加参数时scrollUp()会寻⾯积最⼤的可滑动的控件下滑或右滑。
参数为⼀个整数i时会到第i + 1个可滑动控件滑动。例如scrollUp(0)为滑动第⼀个可滑动控件。
setText([i, ]text)
i表⽰要输⼊的为第i + 1个输⼊框
text要输⼊的⽂本
返回是否输⼊成功。当不到对应的⽂本框时返回false。
不加参数i则会把所有输⼊框的⽂本都置为text。例如setText(“测试”)。
这⾥的输⼊⽂本的意思是,把输⼊框的⽂本置为text,⽽不是在原来的⽂本上追加。
input([i, ]text)
i表⽰要输⼊的为第i + 1个输⼊框
text要输⼊的⽂本
返回是否输⼊成功。当不到对应的⽂本框时返回false。
不加参数i则会把所有输⼊框的⽂本追加内容text。例如input(“测试”)。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论