Auto.jsclick()点击有时会没反应是因为控件没有及时触发。因为JS是单线程,但是浏览器是多线程,虽然说js是边读边执行的,但是并不是真的边读边执行的。浏览器里面至少有两个线程,一个是渲染的,一个是js的,当渲染的线程工作的时候,js的线程是在休息中的。
Auto.js中基于坐标的操作,类似于触摸精灵、按键精灵等,通过屏幕坐标实现点击、长按的模拟操作。
JavaScript 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。
1坐标点击就是直接点击某个点,这个点是固定的,所以在不同分辨率兼容性差,所以不推荐使用。2控件点击是autojs左右特点的一项功能,它是基于安卓的无障碍功能的,在软件上有很好的支持,但是游戏就不行了。具体的教程很多,不多说了,就说说我在使用时踩得一些坑。①有些控件能用autojs的工具找到,但是写出来后却识别不出来,手动滑动一下屏幕就能找到了,不知道是不是BUG,所以加个判断,防止找不到脚本出错。②寻找控件建议不要用findOne()、waitFor()、exists()等一些会阻塞的方法,不然稍微出现一点其他事件就会阻塞,导致脚本莫名其妙的卡死,使用findOne(timeout)、findonce()时可以加个判断在不为null的时候再点击或其他操作,因为没找到返回null,直接click就会报错,脚本停止运行,要是是找的父或者子控件也写到判断里③找图找色特别消耗内存,所以在能用控件就用控件,找图找色在找到后要用recycle()来对创建的图像对象回收,提高脚本稳定,让脚本能持续运行更长时间,截图也需要一定的时间④如果脚本有悬浮窗,使用找图要注意不要将要找地图遮挡。⑤控件中使用text比id要靠谱一些,在一些软件中id是会改变的。只需要把事件类型换为ondblclick即可实现:document.getElementById('id1').ondblclick = function(){ }
这也是我听了黑马程序员的公开课里面讲的