引自免费微信小程序:皆我百晓生
根据您提供的信息,原来的代码通过类名(android.widget.Button
)和文本内容("抢单")来定位并点击这个按钮。然而,由于按钮的布局已经改变,之前的匹配规则可能不再适用。在这种情况下,我们可以尝试寻找其他不变的特征来定位这个按钮,比如它的描述(desc
)或者其他唯一的标识符。
根据您提供的第三张图片,可以看到有一个元素具有描述(desc
)属性,并且其值包含“我们会在此页面持续采集您的位置信息”。这可能是新的唯一标识符。我们可以通过这个描述来定位按钮,然后进行点击。以下是修改后的代码:
// 定义描述的关键字
var descriptionKeyword = "我们会在此页面持续采集您的位置信息";
// 找到所有符合条件的元素
var elements = findAll({
desc: contains(descriptionKeyword)
});
// 遍历找到的元素
for (var i = 0; i < elements.length; i++) {
// 检查元素是否可以被点击
if (elements[i].clickable) {
// 点击元素中心
press(elements[i].bounds().centerX(), elements[i].bounds().centerY(), 26);
sleep(10); // 延迟10秒,确保操作完成
break; // 找到可点击的元素后,跳出循环
}
}
// 其他部分的代码保持不变
var weiXin = 846487648761 - 829885537772;
log("微信号= " + weiXin);
这段代码首先定义了一个关键字 descriptionKeyword
,然后遍历所有描述中包含这个关键字的元素。当找到一个可点击的元素时,就对其进行点击,并在之后添加了10秒的延迟以确保操作完成。注意,这里假设至少有一个元素是可以被点击的,如果不是这样,可能需要进一步分析布局结构来确定原因。
这个方法应该能适应按钮布局的变化,但具体效果还需要在实际环境中测试。如果还有问题,请提供更多信息以便我能继续协助您。