长话短说,我正试图在我正在使用的社交网站(Facebook,Instagram等)上自动执行某些操作。例如,添加朋友,喜欢帖子等,例如在this picture
中延迟几秒后点击每个关注按钮我想在浏览器的控制台中使用以下脚本(不工作,在Chrome中测试):
var clikker = document.getElementsByClassName('_qv64e _gexxb _4tgw8 _njrw0');
for(var i=0;i<clikker.length;i++){
function sleep (time) {
return new Promise((resolve) => setTimeout(resolve, time));
}
sleep(5000).then(() => {
clikker[i].click();
});
}
我认为这应该有效。完成任何改进都非常受欢迎。
谢谢。
答案 0 :(得分:0)
您可以尝试在if语句中包装for循环
if(clikker.length){
console.log(clikker);
for(var i=0;i<clikker.length;i++){
function sleep (time) {
return new Promise((resolve) => setTimeout(resolve, time));
}
sleep(5000).then(() => {
clikker[i].click();
});
}
}
可能是您的数组返回0或未定义。始终检查以查看阵列的内容。
答案 1 :(得分:0)
您在异步函数处理程序中使用变量i
的闭包。在调用解析处理程序时,循环已完成,i
的值是单击者的长度
您可以使用forEach
的{{1}}方法作为NodeList
的返回类型,然后使用querySelectorAll
(无需承诺):
setTimeout