什么是Auto.JS?
Auto.JS是Android平台上的JavaScript自动化工具。什么是Auto.JS?它的本质是可执行自己编写的简易Javascript脚本的,尤其可以在开启“无障碍模式”的情况下对其他App进行一些操作的一个Android App,便于进行自动化操作。学习成本非常低。Auto.JS已被黑产广泛使用,以至于作者关闭了官方下载通道。官网:https://github.com/hyb1996/Auto.jshttps://github.com/hyb1996/Auto.js下面通过代码给大家介绍下基于aotu.js实现微信自动添加通讯录中的联系人功能,具体代码如下所示:微信自动添加通讯录中的联系人
auto.waitFor();
function click_Add(){

var wait_num = 0;

var boolea = 1;

while(!textContains("添加到通讯录").exists()){


if(wait_num > 10){



break;


}


sleep(100);


wait_num++;

}



if(textContains("添加到通讯录").exists()){


console.verbose("等待点击加好友...");


var fal = click("添加到通讯录");


if(fal==false){



console.error("点击加好友失败");


}else{



console.warn("点击加好友成功");


}


if(textContains("申请添加朋友").exists()||textContains("发送").exists()){



Reurn();



console.log("返回");


}else{



sleep(600);



if(!textContains("信息").exists()){




Reurn();



}


}


sleep(100);


Reurn();

}else{


Reurn();

}
}
function Reurn(){

var fan = id("dm").findOne().click();//返回

if(fan==false){


console.error("返回失败");


sleep(200);


var fan1 = id("dm").findOne().click();


if(fan==false){



console.error("再次返回失败");




}else{



console.warn("再次返回成功");


}

}else{


console.warn("返回成功");

}

sleep(100);
}
while(true){

var dq0 = id("dq0").findOne();

dq0.children().forEach(function(child) {


var c8a = child.findOne(id("c8a"));


sleep(200);


try {



if(c8a){




if(c8a.clickable()){





child.click();





click_Add();//点击添加好友





}



}


} catch(e) {



console.info("出现异常clickable");



sleep(500);


}




});

//下滑

sleep(100);

var boolea = id("dq0").findOne().scrollForward();

if(boolea == false){//如果下滑失败5次就结束


break;

}
}
sleep(100);
console.info("程序结束");
auto.waitFor();
function click_Add(){

var wait_num = 0;

var boolea = 1;

while(!textContains("添加到通讯录").exists()){


if(wait_num > 10){



break;


}


sleep(100);


wait_num++;

}



if(textContains("添加到通讯录").exists()){


console.verbose("等待点击加好友...");


var fal = click("添加到通讯录");


if(fal==false){



console.error("点击加好友失败");


}else{



console.warn("点击加好友成功");


}


if(textContains("申请添加朋友").exists()||textContains("发送").exists()){



Reurn();



console.log("返回");


}else{



sleep(600);



if(!textContains("信息").exists()){




Reurn();



}


}


sleep(100);


Reurn();

}else{


Reurn();

}
}
function Reurn(){

var fan = id("dm").findOne().click();//返回

if(fan==false){


console.error("返回失败");


sleep(200);


var fan1 = id("dm").findOne().click();


if(fan==false){



console.error("再次返回失败");




}else{



console.warn("再次返回成功");


}

}else{


console.warn("返回成功");

}

sleep(100);
}
while(true){

var dq0 = id("dq0").findOne();

dq0.children().forEach(function(child) {


var c8a = child.findOne(id("c8a"));


sleep(200);


try {



if(c8a){




if(c8a.clickable()){





child.click();





click_Add();//点击添加好友





}



}


} catch(e) {



console.info("出现异常clickable");



sleep(500);


}




});

//下滑

sleep(100);

var boolea = id("dq0").findOne().scrollForward();

if(boolea == false){//如果下滑失败5次就结束


break;

}
}
sleep(100);
console.info("程序结束");微信截屏已添加联系人
"auto";
function click_Add(){
var wait_num = 0;
while(!textContains("发消息").exists()||!textContains("信息").exists()){
if(wait_num > 6){
break;
}
sleep(100);
wait_num++;
}
if(textContains("发消息").exists()){
console.verbose("等待截屏...");
/**
* 同时模拟三个手势:
* 从(300, 400)到(300, 1400)
* 从(600, 400)到(600, 1400)
* 从(900, 400)到(900, 1400)
* 每一个的时长都为350毫秒
*/
gestures([350, [300, 400], [300, 1400]],

[350, [600, 400], [600, 1400]],

[350, [900, 400], [900, 1400]]
);
}
}
var count = 0;
while(count<5){

id("c4v").findOne().children().forEach(function(child) {


console.info("child");


sleep(1000);


if(child.findOne(className("android.widget.LinearLayout").depth(13))){



console.log("已点击");



var bl = child.click();



console.info("click");



sleep(600);



click_Add();



if(bl){




back();



}


}

});

//下滑

sleep(100);

var boolea = id("c4v").findOne().scrollForward();

if(boolea == false){//如果下滑失败5次就结束


count++;


break;

}
}
console.info("程序结束");
"auto";
function click_Add(){
var wait_num = 0;
while(!textContains("发消息").exists()||!textContains("信息").exists()){
if(wait_num > 6){
break;
}
sleep(100);
wait_num++;
}
if(textContains("发消息").exists()){
console.verbose("等待截屏...");
/**
* 同时模拟三个手势:
* 从(300, 400)到(300, 1400)
* 从(600, 400)到(600, 1400)
* 从(900, 400)到(900, 1400)
* 每一个的时长都为350毫秒
*/
gestures([350, [300, 400], [300, 1400]],

[350, [600, 400], [600, 1400]],

[350, [900, 400], [900, 1400]]
);
}
}
var count = 0;
while(count<5){

id("c4v").findOne().children().forEach(function(child) {


console.info("child");


sleep(1000);


if(child.findOne(className("android.widget.LinearLayout").depth(13))){



console.log("已点击");



var bl = child.click();



console.info("click");



sleep(600);



click_Add();



if(bl){




back();



}


}

});

//下滑

sleep(100);

var boolea = id("c4v").findOne().scrollForward();

if(boolea == false){//如果下滑失败5次就结束


count++;


break;

}
}
console.info("程序结束"); 总结 总结 总结