[英]Run a script in chrome every 1 minute
我正在尝试制作一个脚本,每 1 分钟从 3 个随机类名中选择 1 个并单击所选类的按钮,到目前为止我创建了单击按钮的脚本:
setTimeout(function () {
$(".btn-danger").trigger("click");
}, 100);
问题是如果我把它放在一段时间(真的)网站卡住然后浏览器崩溃。
我也不知道如何让它选择随机类,所以我选择了其中之一。
很高兴在这里得到一些帮助:D
查看setInterval()
一遍又一遍地运行一些东西。 您可以使用Math.floor(Math.random() * 3)
生成从 0 到 2 的随机索引。
例如,您可以像这样随机选择一个类名:
var classes = ["classA", "classB", "classC"];
function selectRandomArrayElement(array) {
return array[Math.floor(Math.random() * array.length)];
}
var rand = selectRandomArrayElement(classes);
所以,把它们放在一起:
var classes = ["classA", "classB", "classC"];
function selectRandomArrayElement(array) {
return array[Math.floor(Math.random() * array.length)];
}
// click on a the object with a random class name every minute
setInterval(function() {
var rand = selectRandomArrayElement(classes);
$("." + rand).trigger("click");
}, 1000*60);
在 Javascript 中,您不能像这样使用while(true)
长持续时间循环阻止浏览器的其余部分处理事件,因此您触发的点击事件永远不会被处理。 相反,您可以使用计时器重复执行某些操作。
您正在寻找setInterval
而不是setTimeout
,它将在您指定的时间间隔无限期地调用回调。
setInterval(function () {
$(".btn-danger").trigger("click");
}, 60000);
应该为你工作。 while(true)
会使您的浏览器崩溃,因为您正在创建一个阻止任何其他代码执行的无限循环。
setTimeout 使用毫秒并且只发生一次。 使用 setInterval 和一秒 * 60 来获得一分钟。
var minute = 1000 * 60;
setInterval(function() { $(".btn-danger").trigger("click");
}, minute);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.