主页 > 网络教程 > Autojs > Autojs官方文档及新手常进的坑

推荐源码

简洁响应式闪烁文字产品宣传网页

简洁响应式闪烁文字产品宣传网页

编号: S7   浏览: 4182

互联网产品app软件开发公司模板

互联网产品app软件开发公司模板

编号: S67   浏览: 4356

推荐服务

Autojs免Root脚本定制服务

Autojs免Root脚本定制服务

编号: S84   浏览: 6125

Autojs尊享学员培训服务

Autojs尊享学员培训服务

编号: S83   浏览: 2897

推荐工具

织梦dedeCMS评论插件免费修复版

织梦dedeCMS评论插件免费修复版

编号: S2   浏览: 2969

千若微信养号辅助工具

千若微信养号辅助工具

编号: S1   浏览: 2770

Autojs官方文档及新手常进的坑

浏览: 次     责任编辑: Dawolf

官方文档:


描述了Autojs基本的命令及语法,学会这些才能为制作脚本打下坚实的基础,可以不全部记下,但是必要的常用命令必须记住,其他的可以了解,至少在参考别人案例的时候知道语句是什么意思。

文档地址:点击此处


新手常进的坑:


有时可能是很简单的一个知识点,但是由于教程资源较少或者我们没有了解这些知识,导致我们白白浪费很多时间,这里笔者为大家整理一些常见的问题,希望对新手能带来一定的帮助,顺序可能有些乱,因为想到什么就顺便补充了!


坑1:有些事情自己想当然

结果就是可能导致调试出现错误,自己纠结不止;代码说白了就是计算机语言,它只能按照设定好的程序走,所以编写过程中必须养成良好的习惯,完全按照标准去写,或者说从开始就要按照标准说明去学习,切不可因为自己的一时大意或想当然而浪费大量时间;因为由于一个不标准的语句,可能会导致后面要花很多的时间去找出问题解决问题,甚至需要大量更改代码!


坑2:Autojs安装后设置权限问题

Autojs虽然是基于无障碍服务的一款App,但是需要的权限有时不止无障碍服务,比如你想打开Autojs的悬浮窗,就需要开启App的悬浮窗权限,你想做弹窗提示效果,就需要开启显示在应用上层权限,你想使用root相关的语句,就需要先给予Autojs root权限,你想让Autojs可以操作其他App,就需要开启后台弹出界面的权限等等,当然,手机型号不同这些权限的开启方式可能也不同,但是总归Autojs是需要相应的权限才可以使用相应的功能,切记!


坑3:一味的模仿别人的作品

首先,只会模仿是学不好这个软件的,不是不可以模仿,但是不能只是依葫芦画瓢,要加入自己的思考,记得交流群有一个新手从一开始就问非常小白的问题,几乎每天都问,到了半个月之后依然还是问那样的问题,在最开始还有人愿意热心回答,到后面就慢慢没人回答他的问题。我们之所以学习Autojs,肯定是想做出自己需要的脚本的,如果自己不能在每次尝试过程中学习进步,又怎么能实现自己的目标呢?


坑4:Autojs Pro7破解版有些控件找不到

这个是笔者亲历的,免费版可以找到的控件,Autojs Pro7破解版怎么都找不到,这就导致了一个问题:使用免费版编写调试脚本,然后使用Autojs Pro7破解版去打包,运行过程中就会出现某些脚本无法识别的情况,对于这个问题目前没有好的解决方法,而特别对于正版Pro没法兼容的那些App,到底怎么样去增加脚本的易传播性就变得鸡肋了(免费版打包报毒,pro破解版控件识别不准,pro正版不兼容...),遇到这种情况只能祈祷了!所以,遇到这种情况就别太纠结了,学会接受。


坑5:有时launchApp(‘应用名’);无法打开相应App

原因主要有二:第一,手机上存在重名的App,第二,没有给予Autojs后台弹出界面权限;


坑6:auto.waitFor();的重要性

auto.waitFor();语句增加是非常必要的,这个在你没有无障碍时候会提示你无障碍模式的开启。并且开启之后,会接着继续运行,否则可能出现一些很不友好的意外中断运行的事件!



坑7:操作过快导致总是找不到控件

由于在进行一步操作之后手机需要一定的操作时间,加上一些App等的操作反应时间,如果控件判断没有给予足够的时间延迟的话,在下一步命令执行时实际上前一步命令的动作还没有完成,最终导致无法识别控件;找不到控件无非三种情况,1.Autojs真的无法识别控件 2.命令之间没有给予足够的延迟 3.查找判断方式不对;


坑8:Autojs查看控件功能看不到的控件并非不可找到

其实Aj查看控件功能所识别的控件,也就是我们看到的在界面上标出绿线的控件,只是相应App等所展示在表层的控件,而其他控件其实依然可以利用Aj找到,只是我们只能靠自己的推断去写代码调试罢了,比如很多我们Aj没有标出的一些底层text()控件,我们就可以直接利用text(“子狼”)、textStartsWith(“子狼”)等命令去查找,同理我们便可以log出它相应的父控件子控件等等的数据,从而进行一些其他操作,其他类型的隐藏控件同样可以调试出,只是相对来说文字控件更容易去判断;


坑9:只会使用官方文档里给出案例的功能

我们要学会自己根据文档或教程去编写一些适合自己使用的语句或者函数,比如官方文档给出了有些控件是clickable(false),想点击的话就使用click(xxx.bounds().centerX(), xxx.bounds().centerY());,但是有时这并不适合我们的使用,比如在操作一些监测比较严格的App时,我们就需要加入随机数,那么我们就可以写一个函数来简化和实现随机点击控件范围内的坐标,比如:


//控件本体随机坐标点击函数

function控件点击(dshuxing,dzhi,dname){

var a=dshuxing(dzhi).findOnce();

if(a!=null){

var x1=a.bounds().left;

var x2=a.bounds().right;

var y1=a.bounds().top;

var y2=a.bounds().bottom;

var x=random(Math.floor(x1+1),Math.floor(x2-1));

//删除控件四周1的边界,防止边框位置点击无效

var y=random(Math.floor(y1+1),Math.floor(y2-1));

var timedelay=random(50,150);

toastLog("点击["+dname+"]");

press(x,y,timedelay);

//可以添加其他操作,适当加延迟

return true;

}else{

toastLog("无法找到["+dname+"]");

//可以添加其他操作,适当加延迟

return false;

}

}

这样就实现了点击位置和点击时长的随机,也无须再去考虑这个控件到底是否clickable,当然条件成立和不成立都还可以加入其他的一些操作,由于存在returntrue;和returnfalse;,我们在调用的时候可以调用

控件点击(text,"发送","发送"),也可以调用

if(控件点击(text,"发送","发送")){

toastLog("发送成功");

//可以添加其他操作,适当加延迟

}else{

toastLog("发送失败");

//可以添加其他操作,适当加延迟

}

等等等等吧,以后在需要用到直接点击控件本体的功能直接调用此函数就可以了,当然,如果判断条件有所改变的话,直接再重新写一个新的条件的函数即可,有些地方还可以继续优化,这里不再赘述,简单易懂就好!


坑10:变量随机数点击不生效

比如x1,x2,y1,y2都是变量,也就是说比如

var x1=a.bounds().left;

var x2=a.bounds().right;

var y1=a.bounds().top;

var y2=a.bounds().bottom;

这时如果我们直接取它们的随机坐标var x=random(x1,x2);var y=random(y1,y2),此时如果我们直接使用press(x,y,50);这个命令是不生效的,即使如果log(x,y)的话,显示出来的值也是数字,而正确的操作应该是先把随机函数内的变量转变成数字,也就是把x1改成Math.floor(x1),以此类推,最终正确的写法如下:

var x=random(Math.floor(x1),Math.floor(x2));

var y=random(Math.floor(y1),Math.floor(y2));

press(x,y,50);

点击操作时是这样,其他对于此类操作未做专门测试!

版权保护: 本文由[ 千若网络 ]编辑,如需转载敬请保留本文链接: http://www.sss.top/jc/autojs/6.html