我试图自动完成一个任务,在那里我必须不断地做鼠标左键点击一个手图标。我可以在一个固定的时间框架内这样做,例如32秒和756毫秒,但我需要一个随机的时间框架。例如,如果我们可以增加2-3秒后,每鼠标左键点击。有人能指导我如何使点击间隔随机吗?我在用Chrome。
setInterval(function(){
$( "[id^='hand_'].handIcon").trigger('click');
}, 32756);发布于 2017-01-03 18:43:11
即使您在Math.random上使用setInterval,它也只注册一次,具有特定的随机值。
有两种选择:
例如:在第二个案件中:
setInterval(function() {
if (Math.random() > 0.8)
$( "[id^='hand_'].handIcon").trigger('click');
}, 200);这将运行每200毫秒,但只有0.8次,例如,平均每250毫秒,但随机。当然,你可以调整数字。
第一个例子,因为我今天真的很受鼓舞:
let action = () => $( "[id^='hand_'].handIcon").trigger('click');
let old, register = () => {
if (old) clearInterval(old);
old = setInterval(() => {
action();
register(); // re-register
}, 32756 + 3000*Math.random() - 1500)
};
register();发布于 2017-01-03 18:47:07
使用一个递归函数,它在setTimeout之后调用自己。这将无限地运行,每次随机间隔在32000到35000毫秒之间(32到35秒)。
var clickHand = function() {
$("[id^='hand_'].handIcon").trigger('click');
setTimeout(clickHand, (Math.random() * 3000) + 32000);
}
clickHand();<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
发布于 2017-01-03 18:49:32
您的答案是setTimeout作为带有随机延迟的回调
var timeout = function(callback) {
var time = Math.floor(Math.random()*32756);
return setTimeout(function(){
callback();
timeout(callback);
}, time)
};
timeout(function(){
$( "[id^='hand_'].handIcon").trigger('click');
})https://stackoverflow.com/questions/41450212
复制相似问题