财富自由不是梦 2021-11-26 10:45 采纳率: 33.3%
浏览 276
已结题

auto.js脚本运行报错求看看是什么问题

错误::Can't find method
com.stardust.autojs.runtime.ScriptRuntime
.sleep(globals_.js#16)

是一个LiveMe自动私信粉丝的脚本


```javascript

function TangoMsgScriptMain() {
    // 读取参数
    let wordsID = files.read('./iw/ID.txt'); // 获取当前话术ID
    let wordsStr = files.read('./iw/Words.txt'); // 获取私信内容
    let wordsObj = JSON.parse(wordsStr);
    let wordsList = [];
    for (let key in wordsObj) {
        if (Object.hasOwnProperty.call(wordsObj, key)) {
            let element = wordsObj[key];
            wordsList.push(element);
        }
    }
    let countString = files.read('./iw/count.txt'); // 获取评论次数
    let count = parseInt(countString); // 将count转成Number类型
    // 读取私信记录  -->  先判断文件路径是否存在:若存在,则读取记录;若不存在,则创建文件
    let msgRecordObj = {}; // 所有私信记录
    let currentIDMsgRecordArr = []; // 当前话术ID对应的私信记录
    if (files.exists('./iw/LiveMeRecord.txt')) {
        let msgRecordTemp = files.read('./iw/LiveMeRecord.txt');
        if (msgRecordTemp === '') {
            msgRecordTemp = '{}';
        }
        msgRecordObj = JSON.parse(msgRecordTemp);
        if (msgRecordObj.hasOwnProperty(wordsID)) {
            currentIDMsgRecordArr = msgRecordObj[wordsID];
        }
    } else {
        files.create("./iw/LiveMeRecord.txt");
    }
    // 打开LiveMe Pro
    toastLog('打开LiveMe Pro');
    launch('com.europe.live');
    sleep(8000);
    // 关闭弹窗
    // let popup = id("check_in_close").findOne();
    // if (popup) {
    //     toastLog('关闭广告弹窗');
    //     popup.click();
    //     sleep(3000);
    // } else {
    // 进入个人主页
    toastLog('进入个人主页');
    let profileClickMe = id("me_page").findOne().click();
    sleep(3000);
    // }
    // 进入粉丝列表
    toastLog('进入粉丝列表');
    let profileClickFans = id("fans_tv_text").findOne().click();
    sleep(3000);
    // 进入推广列表
    toastLog('进入推广列表');
    let profileClickExtension = id("home_tab_title").className("android.widget.TextView").text("推薦").findOne().parent().parent().click();
    sleep(3000);
    // 已操作粉丝列表,包括不能发送私信的粉丝
    let fansArr = [];
    // 已操作粉丝数量,不包括不能发送私信的粉丝
    let operatedNum = [];
    // 记录上一个循环页面中最后一个粉丝的昵称
    let lastFansName = '';
    // 循环执行私信任务
    while (operatedNum < count) {
        // --- 获取当前页面的粉丝列表 ---
        // 获取所有 id 为 com.europe.live:id/follow_list_root 的控件
        let fansListFirst = id('com.europe.live:id/follow_name').find()
        // let fansListFirst = className(android.view.ViewGroup).find()
        // 获取当前页面的粉丝数量
        let fansNum = fansListFirst.length;
        toastLog('当前页面粉丝数:' + fansNum);
        sleep(3000)
        for (let i = 0; i < fansNum; i++) {
            // --- 获取当前页面的粉丝列表 ---
            // 获取所有 id 为 com.europe.live:id/follow_list_root 的控件
            let fansList = id('com.europe.live:id/follow_name').find();
            // 获取当前粉丝昵称控件
            let currentFans = fansList[i];
            // 获取当前粉丝昵称
            let currentFansName = currentFans.text();
            // 判断当前粉丝是否已经私信过
            if (currentIDMsgRecordArr.indexOf(currentFansName) === -1 && fansArr.indexOf(currentFansName) === -1) {
                toastLog('当前粉丝昵称:' + currentFansName);
                sleep(2000);
                // 进入当前粉丝个人主页
                currentFans.parent().click();
                sleep(3000);
                let fansSendMsgPageBth = id("layout_message").findOne();
                if (fansSendMsgPageBth) {
                    // 进入当前粉丝私信页面
                    toastLog('进入私信');
                    fansSendMsgPageBth.click();
                    sleep(3000);
                    // 提示用户
                    toastLog('当前执行第' + (operatedNum + 1) + '次操作');
                    sleep(2000);
                    // 开始私信
                    for (let k = 0; k < wordsList.length; k++) {
                        let msgArr = wordsList[k];
                        // 点击输入框
                        let editTexBtn = id("toolbox_et_message").findOne();
                        click(editTexBtn.bounds().centerX(), editTexBtn.bounds().centerY());
                        sleep(2000);
                        // 输入私信内容
                        setText(msgArr[random(0, msgArr.length - 1)]);
                        sleep(2000);
                        // 点击发送按钮
                        let sendBtn = id('toolbox_btn_send').findOne().click();
                        sleep(3000);
                        if (k !== wordsList.length - 1) {
                            // 间隔随机时间
                            sleep(random(5, 10) * 1000)
                        }
                    }
                    // operatedNum++;
                    operatedNum++;
                    // 提示用户
                    toastLog('私信成功');
                    sleep(2000);
                    if (operatedNum === count) {
                        i = fansNum;
                    }
                    // 返回收起小键盘  ************
                    backFun();
                    // 返回至粉丝个人主页
                    backFun();
                } else {
                    toastLog('当前粉丝无法私信,正在跳过...');
                    sleep(2000);
                }
                //  --- 后续操作 ---
                // 1. 更新 fansArr 数组
                toastLog('更新数组');
                fansArr.push(currentFansName);
                sleep(2000);
                // 2.更新 msgRecordObj 对象
                if (!msgRecordObj.hasOwnProperty(wordsID)) {
                    msgRecordObj[wordsID] = [];
                }
                toastLog('更新 msgRecordObj');
                msgRecordObj[wordsID].push(currentFansName);
                sleep(2000);
                // 3. 将新的 msgRecordObj 对象写入文件中
                toastLog('将新的 msgRecordObj 对象写入文件中')
                files.write("./iw/TangoRecord.txt", JSON.stringify(msgRecordObj));
                sleep(2000);
                // 返回至粉丝列表
                backFun();
            }
        }
        toastLog('---下滑---');
        swipe(device.width / 2, 3 * device.height / 4, device.width / 2, device.height / 4, 2000);
        sleep(2000);
        // 重新获取所有 id 为 com.europe.live:id/follow_list_root 的控件
        let fansListCheck = id('com.europe.live:id/follow_name').find();
        // 获取最后一个粉丝的昵称
        let lastFansNameCheck = fansListCheck[fansListCheck.length - 1].text();
        // 判断
        if (lastFansName === lastFansNameCheck) {
            toastLog('已私信所有粉丝,结束任务...');
            sleep(2000);
            break;
        } else {
            lastFansName = lastFansNameCheck
        }
    }
    // 返回
    backFun();
    // 返回至首页
    backFun();
    // 返回CoolCloud
    // launch('com.aidian.coolcloud');
    // sleep(3000);
    // 退出脚本 *********
    exit();
}

function backFun() {
    back();
    sleep();
}

// 脚本入口函数
TangoMsgScriptMain();

```

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月4日
    • 创建了问题 11月26日

    悬赏问题

    • ¥45 工程软件单片机设计课题要求
    • ¥15 在centos7安装conda
    • ¥15 c#调用yolo3 dll文件获取的数据对不上
    • ¥20 WPF 如何实现多语言,label 和cs(live Charts)中是否都能翻译
    • ¥15 STM32F103上电短路问题
    • ¥15 关于#单片机#的问题:以ATMEGA128或相近型号单片机为控制器设计直流电机调速的闭环控制系统(相关搜索:设计报告|软件设计|流程图)
    • ¥15 打开软件提示错误:failed to get wglChoosePixelFormatARB
    • ¥15 (标签-python|关键词-char)
    • ¥15 python+selenium,在新增时弹出了一个输入框
    • ¥15 苹果验机结果的api接口哪里有??单次调用1毛钱及以下。