(第一期)-自动化实现全自动加好友(以QQ可能想认识的人为例)

大家好,我是公众号:狗哥文化

最近有不少网友说,之前的QQ可能想认识的人引流程序用不了,不支持最新版本的qq,问我有没有时间更新一下,刚好昨天夜晚有点时间就顺手更新了一下,最后把整个开发过程给大家一起分享一下吧

再编写这款程序之前我们先来展示一下添加效果图:
在这里插入图片描述
在这里插入图片描述
比起前几次更新,这次更新可以说是有史以来我耗时最多的一次了.

改写了ui框架之前用到的是html 这次改用xml加载的速度手机上可能看不出来什么,如果在模拟器或者云手机上来看,加载的速度有明显的不同.另外也程序改写了核心代码,之前写的各种判读条件太多,导致运行的速度太慢,还容易出错,这次不会了,并且支持QQ添加好友的多重界面.

function main() {
    thread.execAsync(() => {
        热更_检测心跳()
    })
    //如果自动化服务正常

    if (!autoServiceStart(3)) {
        logd("自动化服务启动失败,无法执行脚本")
        exit();
        return;
    }
    logd("开始执行脚本...")
    初始化运行环境()
    while (true) {
        keepNode()
        let node = text("添加").clz("android.widget.Button").getOneNodeInfo(1000)
        if (!has(text("可能想认识的人")) && has(text("QQ号/QID/手机号/群"))) {

            logi("[系统]:已全部添加完成!");//加完了QQ可能想认识的人数据
            break;
        } else if (node) {
            let nodes = node.parent().parent().child(1)
            let 昵称 = nodes.child(0).child(0)
            // logd(JSON.stringify(nodes))
            // logd(JSON.stringify(昵称.text))

            if (昵称 && accessNumber(昵称.text + "")) {

                logi("[系统]:" + 昵称.text + "无需重复添加!");//过滤添加过的人
                while (true) {
                    keepNode()
                    sleep(1000)
                    if (has(clz("android.view.View").desc("不再推荐"))) {

                        loge("[系统]:不再推荐此人");//过滤添加过的人
                        click(clz("android.view.View").desc("不再推荐"))
                        break
                    } else {
                        dragToPoint(text(昵称.text).clz("android.widget.TextView"), 12, 191, 1000);
                        sleep(1000)
                    }
                }
            } else if (昵称) {
                logd("[系统状态]:正常");
                findClickEx(node)
                sleep(1000);
                验证请求()
                时间 = random(readConfigString("a1"), readConfigString("a2"))
                休息时间(时间)
            }
        } else if (findNode(text("我知道了"), true)) {
            logd("[系统]:好友添加请求已发送,需对方确认。");

        } else if (has(text("取消")) && has(text("加好友"))) {
            logd("[系统]:添加出现了点儿小问题");
            logi("[系统]:纠正中-->" + click(text("取消")))
        } else if (has(text("确定").clz("android.widget.TextView").desc("确定"))) {
            logd("[系统]:对方进行了隐私设置,无法添加对方为好友");
            logi("[系统]:取消该用户的添加-->" + click(text("确定")))
        }
        sleep(1000);

    }
}

function 初始化运行环境() {
    if (!autoServiceStart(2)) {
        logw("[系统]自动化服务启动失败 请手动打开对应服务");
        exit();
    } else {
        setFloatDisplayLineNumber(false);//不显示日志行数
        clearLog(-1);//清除日志全部内容
        logi("------------------------");
        logi("[系统]自动化环境开启成功");
        logi("[系统]守护自动化环境服务:" + daemonEnv(true));
        logi("[系统]历史日志清理成功");
        logi("[系统]日志浮窗开启结果:" + showLogWindow());//展日志浮窗
        logi("[系统]启停浮窗开启结果:" + showCtrlWindow());//展示启停浮窗
        logi("[系统]设备版本:Android" + device.getOSVersion());
        logi("------------------------");
        sleep("500");
    }
}

function autoServiceStart(time) {
    for (var i = 0; i < time; i++) {
        if (isServiceOk()) {
            return true;
        }
        var started = startEnv();
        logd("第" + (i + 1) + "次启动服务结果: " + started);
        if (isServiceOk()) {
            return true;
        }
    }
    return isServiceOk();
}

如果你想获得这款程序的话可以添加下面的二维码

                                               =正文完=
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
TestNG结合Test-Asserted可以实现强大的接口自动化测试框架,以下是一个简单的代码实现: 1. 首先引入TestNG和Test-Asserted的依赖库: ``` <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.3.0</version> </dependency> <dependency> <groupId>com.jayway.restassured</groupId> <artifactId>rest-assured</artifactId> <version>4.3.0</version> </dependency> ``` 2. 创建一个TestNG测试类: ``` import org.testng.annotations.Test; @Test public class ApiTest { } ``` 3. 在测试类中添测试方法,使用Test-Asserted发送HTTP请求并验证响应: ``` import static com.jayway.restassured.RestAssured.*; import static org.hamcrest.Matchers.*; @Test public void testApi() { given() .param("key", "value") .when() .get("/api/endpoint") .then() .statusCode(200) .body("response", equalTo("expectedValue")); } ``` 在这个示中,我们使用了RestAssured库来发送HTTP请求并验证响应。我们首先使用given()方法指定请求参数,然后使用when()方法发送请求,最后使用then()方法验证响应的状态码和响应体中的值。 4. 运行测试方法: 可以使用IDE或者maven命令来运行测试方法。如,使用maven命令`mvn test`来运行所有的TestNG测试方法。 这就是一个简单的TestNG结合Test-Asserted实现的接口自动化测试框架示。当然,实际项目中可能需要更多的配置和优化,但这个示可以作为一个起点来进行开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值