前言
在写一个为QQ附近的人吸引流量的脚本时,需要判断当前用户是否已经操作过。如果完成,请跳过该用户。
在用户列表页面上选择名称并不容易。所以在用户个人资料页面上取用户昵称。
接下来查看用户昵称的节点信息,发现id和text都是空的。
生成下面的代码,看看它是什么样子
这是生成的代码。发现里面有文字(“No-Name”),表示可以获取昵称文字,但是等级低于,不能直接查看。
id("name").className("android.widget.TextView").text("无名小卒").findOne().parent()
以下是编写的测试代码:
log(APP_取用户昵称())
function APP_取用户昵称() {
// 判斷是否在用戶資料頁
waitForActivity("com.tencent.mobileqq.nearby.profilecard.NearbyPeopleProfileActivity"); //等待页面出现
if (text("资料").exists() && text("动态").exists()) { //判断是否存在指定节点
var object = id("name").depth(10).className("TextView")
if (object.exists()) {
return object.findOne().text()
};
} else {
// log(getNowFormatDate() + "当前不在用户资料页")
};
return "";
};
写完之后,感觉写完了。谁知道如果更改了用户测试,就会出现问题。
删除的不是用户名。
接下来重写一段测试代码:
var object = id("name").depth(10).className("TextView").find();
log(object.size())
if (!object.empty()) {
toast("找到啦");
object.forEach(function(currentValue, index) {
// log(index)
log(currentValue.text())
})
} else {
toast("没找到╭(╯^╰)╮");
}
我们来看看调试日志:
11:19:56.239/V: 开始运行[[remote]test.js]
11:19:56.447/D: 3
11:19:56.449/D: 直播等级 22 级
11:19:56.452/D: 她的动态还在酝酿中
11:19:56.454/D: 丢丢有点饿
11:19:56.456/V:
------------
[[remote]test.js]运行结束,用时0.215000秒
从结果中qq昵称查找技术,发现了3个结果。只有最后一个是我们想要的用户昵称。
我换了几个用户分别测试,发现结果有时是1,有时是2qq昵称查找技术,有时是3。用户昵称总是最后一个。所以我们需要过滤提取的内容。接下来修改代码。
var object = id("name").depth(10).className("TextView").find();
log(object.size())
if (!object.empty()) {
toast("找到啦");
object.forEach(function (currentValue, index) {
// log(index)
// 筛选结果
if (index == object.size() - 1) {
log(currentValue.text())
};
})
} else {
toast("没找到╭(╯^╰)╮");
};
我们来看看4个用户的测试日志:
[[remote]test.js]运行结束,用时0.202000秒
11:25:36.366/V: 开始运行[[remote]test.js]
11:25:36.576/D: 3
11:25:36.578/D: 丢丢有点饿
11:25:36.580/V:
------------
[[remote]test.js]运行结束,用时0.212000秒
11:25:43.811/V: 开始运行[[remote]test.js]
11:25:44.020/D: 1
11:25:44.023/D: 无名小卒
11:25:44.025/V:
------------
[[remote]test.js]运行结束,用时0.213000秒
11:25:53.742/V: 开始运行[[remote]test.js]
11:25:53.939/D: 3
11:25:53.942/D: 勿忘心安
11:25:53.944/V:
------------
[[remote]test.js]运行结束,用时0.200000秒
11:26:01.068/V: 开始运行[[remote]test.js]
11:26:01.300/D: 2
11:26:01.317/D: 贫困户小百度
11:26:01.319/V:
------------
[[remote]test.js]运行结束,用时0.250000秒
这次应该没有问题了。
接下来将代码封装到公共函数中。你完成了。
代码可在文章右侧下载。
开发环境和工具
QQ版:安卓8.0.7.4085
开发 IDE:Visual Studio 代码1.3.5.1
Auto.js:专业版 7.0.3-7
终端设备一:红米Note5A高端版
终端设备1分辨率:720X1280像素
终端设备1安卓版本:7.1.2
终端设备2:红米Note7
终端设备2分辨率:1080X2340像素
终端设备2 安卓版本:9
开发文档相关教程
Auto.js Pro操作QQ附近人员列表时,判断是否关注私信
Auto.js Pro 安卓全分辨率免root引流脚本开发教程