前言
在使用Auto.js实现抖音模拟点击过程中,会出现权限申请弹窗、验证弹窗、上滑查看更多视频弹窗等,阻塞脚本运行,下面给大家介绍下摸索的成果。
一、实现原理
通过屏幕录制以及textMatches正则表达式配合线程来实现。
二、使用步骤
1.代码示例
代码如下(示例):
//启动子线程关闭弹窗检测弹窗
threads.start(function(){
if(auto.service != null){
//记录发现验证弹窗的次数,防止脚本阻塞一直提示找到弹窗
Allownum_1=0;
Allownum_2=0;
Allownum_3=0;
while(true){
//正则表达式可自行修改
let Allow = textMatches(/(立即开始|拒绝|暂不使用|我知道了|以后再说|同意|上滑查看更多视 频|依次点击文字:|请完成下列验证后继续:|拖动滑块,完成拼图)/).findOne(2*1000);
if(Allow){
Allow_text=Allow.text();
if("依次点击文字:"==Allow_text){
if(0==Allownum_1){
Allow_1=Allow.depth();
echo_log('第一次发现依次点击文字弹窗');
}else{
if(Allow_1===Allow.depth()){
}else{
echo_log('发现依次点击文字弹窗');
}
}
Allownum_1++;
}else if("请完成下列验证后继续:"==Allow_text){
if(0==Allownum_2){
//depth=10 indexInParent=1
Allow_2= Allow.depth();
echo_log('第一次发现请完成下列验证后继续弹窗'+Allow_2);
}else{
if(Allow_2===Allow.depth()){
}else{
echo_log('发现请完成下列验证后继续弹窗');
}
}
Allownum_2++;
}else if("拖动滑块,完成拼图"==Allow_text){
if(0==Allownum_3){
Allow_3=Allow.depth();
echo_log('第一次发现拖动滑块,完成拼图弹窗');
}else{
if(Allow_3===Allow.depth()){
}else{
echo_log('发现拖动滑块,完成拼图弹窗');
}
}
Allownum_3++;
}else if("上滑查看更多视频"==Allow_text){
//出现这个弹窗不滑动屏幕模拟点击脚本会阻塞
swipe(random(device.width/2-50,device.width/2+50), random(device.height/2+200, device.height/2+300), random(device.width/2+50,device.width/2+100), random(50, 100), 700);
sleep(random(500, 1000));
swipe(random(device.width/2-50,device.width/2+50), random(device.height/2+200, device.height/2+300), random(device.width/2+50,device.width/2+100), random(50, 100), 700);
sleep(random(500, 1000));
echo_log('滑动屏幕');
}else{
Allow.click();
echo_log("关闭"+Allow.text()+"弹窗");
}
}
}
}
});
if(!requestScreenCapture()){
echo_log("请求截图权限失败");
}else{
echo_log("已获得截图权限");
}
//注意脚本运行完毕关闭子线程
threads.shutDownAll();
2.echo_log方法
代码如下(示例):
/**
* 在控制台统一输出内容
*/
function echo_log(msg) {
console.log(msg)
}
总结
以上就是今天要讲的内容了,本文仅仅简单介绍了textMatches正则表达式与屏幕录制配合实现模拟点击的使用,希望对大家有所帮助。