代码使用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小时内删除。