代码使用auto.js编写,完成以下三个任务:
任务1:每日看广告赚金币
任务2:自动翻阅书本
任务3:观看书本中含有的广告
两个脚本main.js和autoJSSDK.js
main.js脚本
auto.waitFor();
//console.show();
var autoSDK=new require('autoJsSDK.js');
var appName="番茄免费小说";
var taskIsOver=1;//0表示任务完成,1表示未完成;
var W=device.width;//屏幕宽
var H=device.height;//屏幕高
var TID1;
autoSDK.saveLog(appName);//保存日志
autoSDK.OpenAppByName(appName);
sleep(8000);
if(autoSDK.findNodePro("text","福利",11,true,true)){
autoSDK.msg("成功进入福利界面");
}
sleep(5000);
while(true){
checkIfTaskIsOver();
if(taskIsOver == 0){
//看广告任务完成今日书城界面
if(autoSDK.findNodePro("text","书城",11,true,true)){
autoSDK.msg("成功进入书城界面");
sleep(5000);
if(autoSDK.findNodePro("id","c7v",26,true,true)){
autoSDK.msg("打开一本书,开始阅读");
TID1=setInterval(function(){
doTaskVideoInBook();//观看书页面出现的广告
autoSDK.swipBook(W,H);
}, 500);
}
}
break;
}
else{
if(autoSDK.findNodePro("text","看广告赚金币",13,true,true)){
autoSDK.msg("看广告赚金币开始观看广告");
videoTask();
}
}
}
//判断任务是否已经完成
function checkIfTaskIsOver(){
if(autoSDK.findNodePro("text","明日再来",13,false,true)){
taskIsOver=0;
autoSDK.msg("看广告任务完成");
}
else{
autoSDK.msg("任务未完成继续......");
}
}
//看书界面点击看广告
function doTaskVideoInBook(){
if(autoSDK.findNodePro("text","看视频领金币",18,true,true) || autoSDK.findNodePro("textStartsWith","看视频赚",23,true,true)){
autoSDK.msg("开始播放广告");
videoTask();
}
}
function videoTask(){
sleep(3000);
if(autoSDK.findNodePro("text","开启声音",8,false,true)){
closeAdVideo();
sleep(2000);
}
}
//关闭广告视频
function closeAdVideo(){
while(true){
if(autoSDK.findNodePro("text","领取成功",8,false,true)){
back();
sleep(1000);
break;
}
else{
sleep(500);
}
}
}
autoJSSDK.js
const autoJSSDK = {};
/* 通过名称打开APP */
autoJSSDK.OpenAppByName = function (appName){
if(appName == null){
return(false);
}
return(launchApp(appName));
}
//输出日志和提示
autoJSSDK.msg=function (message){
log(message);
toast(message);
}
//日志文件保存
autoJSSDK.saveLog=function(appName){
console.setGlobalLogConfig({
"file": "/sdcard/"+appName+".txt"
});
}
autoJSSDK.swipBook=function(W, H){
swipe(W*0.8, H*0.6,W*0.2, H*0.6,500);
var sleepNum=random(5000,8000);
sleep(sleepNum);
this.msg("页面停留时间"+sleepNum+"毫秒");
}
//小米、一加、华为
autoJSSDK.killApp=function(Name){
var packageName=app.getPackageName(Name);
app.openAppSetting(packageName);
sleep(1000);
while(true){
if(text("结束运行").exists()){
click("结束运行");
break;
}
else if(text("强行停止").exists()){
click("强行停止");
break;
}
sleep(500);
}
while(true){
if(text("确定").exists()){
click("确定");
break;
}
else if (text("强行停止").exists()){
click("强行停止");
break;
}
sleep(500);
}
back();
}
/*
* 功能:寻控件点击返回点击和查的结果
* mode 控件寻方式
* string mode的属性值
* depth 节点深度
* ifClick 是否需要点击
* proFind 是否强化查节点
* onClick 单击标志,默认为true
* overTime 查节点超时时间默认为0
*/
autoJSSDK.findNodePro = function(mode,string,depth,ifClick,proFind,onClick,overTime){
if(overTime == undefined){
overTime = 1
}
if(onClick == undefined){
onClick = true
}
let tag = false //运行结果
let obj;
if(mode == "text"){
if(proFind){
obj = text(string).depth(depth).findOne(overTime);
}else{
obj = text(string).findOne(overTime);
}
} else if(mode == "desc"){
if(js脚本开发proFind){
obj = desc(string).depth(depth).findOne(overTime);
}else{
obj = desc(string).findOne(overTime);
}
}else if(mode == "id"){
if(proFind){
obj = id(string).depth(depth).findOne(overTime);
}else{
obj = id(string).findOne(overTime);
}
}else if(mode == "className"){
if(proFind){
obj = className(string).depth(depth).findOne(overTime);
}else{
obj = className(string).findOne(overTime);
}
}else if(mode == "textEndsWith"){ //textEndsWith
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论