刘小帅

dy
var comMessage = "哈哈咯"; // 评论内容 var seleExistC...
扫描右侧二维码阅读全文
06
2021/05

dy

var comMessage = "哈哈咯";  // 评论内容
var seleExistCount = 10; //如果元素不存在 需要找几次 
var upMain = "321Mxq"; //抖音账号156782044 321zhs
var versionName = getPackageVersion(app.getPackageName("抖音"));//版本名称

/*
    ...14.3.0之前的版本元素获取不到 
    每个小版本目前发现 元素id不会变化 例如 14.5.1 和 14.5.0 就是一样的
    大版本更新后 14.6.0 需要更改三个元素id 
        1.首页搜索按钮  
        2.(三个点)点击评论按钮 
        3.评论完成之后的确认发送箭头按钮.

     滑动控件会有更改
*/
//获取版本号
function getPackageVersion(packageName) {
    importPackage(android.content);
    var pckMan = context.getPackageManager();
    var packageInfo = pckMan.getPackageInfo(packageName, 0);
    return packageInfo.versionName;
}

//点击搜索
function searchClick(inputDesc,seleExistCount){
    var count = 0;
    while(true){
        sleep(1);
        if (desc(inputDesc).exists()) {
            if(desc(inputDesc).findOne().parent().clickable() == true){
                desc(inputDesc).findOne().parent().click();
                sleep(1000);
                setText(upMain);
                sleep(1000);
                break;
            }else{
                desc("搜索").findOne().parent().parent().click();
                sleep(1000);
                setText(upMain);
                sleep(1000);
                break;
            }

        }else{
            count += 1;
            toastLog("未获取搜索按钮元素... 开始第" + count + "次寻找");
            sleep(1500);
            if (count >= seleExistCount ) {
                toastLog("找寻元素失败...");
                exit();
                break;
            }
        }
    }
}


function searchCkb(inputText,seleExistCount){
    var count = 0;
    while(true){
        sleep(1);
        if (text(inputText).exists()){
            var search = text(inputText).findOne();
            var searchBds = search.bounds();
            click(searchBds.centerX(),searchBds.centerY());
            sleep(3000);
            break;
        }else{
            count += 1;
            toastLog("未获取搜索按钮元素... 开始第" + count + "次寻找");
            sleep(1500);
            if (count >= seleExistCount ) {
                toastLog("找寻元素失败...");
                exit();
                break;
            }
        }
    }
}
//点击用户
function clickUser(inputText,seleExistCount){
    var count = 0
    while(true){
        sleep(1);
        if(text(inputText).exists()){
            text(inputText).findOne().parent().click();
            sleep(2000);
            break;
        }else{
            count += 1;
            toastLog("未获取用户按钮元素... 开始第" + count + "次寻找");
            sleep(1500);
            if (count >= seleExistCount ) {
                toastLog("找寻元素失败...");
                exit();
                break;
            }
        }
    }
}

//进入主页
function mainSite(inputClassname,seleExistCount){
    count = 0;
    while(true){
        if(className(inputClassname).exists()){
            var a = className(inputClassname).find();
            var b = a[3].bounds();
            click(b.centerX(),b.centerY()); 
            sleep(1500);
            break;
        }else{
            count += 1;
            toastLog("未获取到up主... 开始第" + count + "次寻找");
            sleep(1500);
            if (count >= seleExistCount ) {
                toastLog("找寻元素失败...");
                exit();
                break;
            }
        }
    }
}


function clickCom(seleExistCount){
    var count = 0;
    while(true){
        sleep(1);
        if (descMatches("评论[0-9]{1,10}\,按钮").exists()){
            descMatches("评论[0-9]{1,10}\,按钮").find()[0].click();sleep(800)     
            break;
        }else if(descMatches("评论[0-9]{1,10}\.[0-9]{1,10}w\,按钮").exists()){
            descMatches("评论[0-9]{1,10}\.[0-9]{1,10}w\,按钮").find()[0].click();sleep(800);
            break;
        }else{
            count += 1;
            toastLog("未获取三个点评论按钮元素... 开始第" + count + "次寻找");
            sleep(1500);
            if (count >= seleExistCount ) {
                toastLog("找寻元素失败...");
                exit();
                break;
            }
        }
    }
}




//评论框点击
function setCom(inputText,seleExistCount){
    var count = 0;
    while(true){
        sleep(1);
        if(text(inputText).exists()){
            text(inputText).findOne(3000).click();
            sleep(700);
            setText(comMessage + "\n" + "随机数: " + random(1,999));
            sleep(700);
            break;
        }else{
            count += 1;
            toastLog("未获取评论框元素... 开始第" + count + "次寻找");
            sleep(1500);
            if (count >= seleExistCount ) {
                toastLog("找寻元素失败...");
                exit();
                break;
            }
        }
    }
}


//发送评论
function sendCom(seleExistCount){
    var count = 0;
    while(true){
        sleep(1);
        try{
            var lastImgView = className("android.widget.FrameLayout").findOne(3000).find(className("android.widget.ImageView"))
            lastImgView[lastImgView.length -9].click();sleep(1000);
            if (versionName == "15.6.0" || versionName == "15.4.0" || versionName == "15.1.1" || versionName == "15.1.0" || versionName == "16.0.0") {
                break;
            }else{
                back();
                sleep(1000);
                break;
            }
        }catch(error){
            count += 1;
            toastLog("未获取发送按钮元素... 开始第" + count + "次寻找");
            sleep(1500);
            if (count >= seleExistCount ) {
                toastLog("找寻元素失败...");
                exit();
                break;
            } 
        }

    }

}

//点击第一个作品 
function clickUp(){
    if(id("android:id/text1").text("商家").exists()){
        textMatches("作品 [0-9]{1,10}").findOne().parent().parent().parent().click();
        sleep(1000);
    }
    if (text("置顶").exists()){
        var topBds = text("置顶").find()[0].bounds();
        click(topBds.centerX(),topBds.centerY());
        sleep(1200);
    }else if(descMatches("视频1,点赞数[0-9]{1,10}.[0-9]{1,10}w").exists()){
        var vdBds = descMatches("视频1,点赞数[0-9]{1,10}.[0-9]{1,10}w").findOne(3000).bounds();
        // 进入第一个作品
        click(vdBds.centerX(),vdBds.centerY());
        sleep(1200);
    }else if (desc("视频1").exists()){
        var vdBds = desc("视频1").findOne(3000).bounds();
        click(vdBds.centerX(),vdBds.centerY());
        sleep(1200);                 
    }else{
        var vdBds = descMatches("视频1,点赞数[0-9]{1,10}").findOne().bounds();
        // 进入第一个作品
        click(vdBds.centerX(),vdBds.centerY());
        sleep(1200);
    }
}


// 共同操作
launchApp("抖音");
sleep(3000);

threads.start(function(){
    while(true){
        sleep(1200);
        if(text("我知道了").exists()){
            text("我知道了").click();
            sleep(1000);
        };
    };
});


threads.start(function(){
    while(true){
        sleep(1200);
        if(text('发现通讯录好友').exists()){
            text('暂时不要').click();
            sleep(1000);
        };
    };
});

while(true){
    sleep(1);
    if (!text("朋友").exists() && !text("消息").exists()){
        back();
        sleep(1000);
    }else{
        text("首页").findOne().parent().parent().parent().click();
        sleep(1000);
        break;
    }
}

//点击搜索
searchClick("搜索",seleExistCount);
//点击搜索
searchCkb("搜索",seleExistCount);
//点用户
clickUser("用户",seleExistCount);
//进主页
mainSite("android.view.ViewGroup",seleExistCount);
clickUp();
while (true) {
    sleep(1);
    clickCom(seleExistCount);
    setCom("留下你的精彩评论吧",seleExistCount);
    sendCom(seleExistCount);
    var status = scrollDown();
    sleep(1000);
    if (status == false) {
        toastLog("运行完毕...");
        break;
    }
}
Last modification:May 21st, 2021 at 04:18 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment