如何构建评论所展示的功能?
// for(x=0;x<10;x++)
$('a[attr*="unique"]:first').attr('id', 'mysuperid1');
document.getElementById("mysuperid1").click();
// delay
$("span:contains(action)").parent().click();
// delay
$jq("a:contains(action)").attr('id', 'mysuperid2');
document.getElementById("mysuperid2").click();
// delay
$('input[value="action"]').attr('id', "mysuperid3");
document.getElementById("mysuperid3").click();
// delay
// back to the top of loop
(名称和选择/搜索词已被修改)
我认为问题就像这里发现的问题http://darklaunch.com/2011/05/21/javascript-for-loop-using-settimeout-to-pass-argument但我无法弄清楚如何推断该链接上教授的内容以包含多个延迟,因为我不是一个javascript开发人员。
这是一个机器人,可以为我自动执行一些网络任务。
非常感谢
答案 0 :(得分:1)
也许您可以将此方法用作模板,然后将所有任务划分为自己的功能。
var delay = 1000;
function beginTasks(){
taskOne();
}
function taskOne(){
// Do something
window.setTimeout(function(){
taskTwo();
}, delay);
}
function taskTwo(){
// Do something else
window.setTimeout(function(){
beginTasks(); // <-- back to start
}, delay);
}
答案 1 :(得分:0)
你不能睡觉&#39; Javascript中的操作。
但是,您可以使用async节点模块(也可用于浏览器),它将为您提供一些不错的异步语法包装器,以帮助您处理异步函数,例如setTimeout。
您的代码应类似于:
async.whilst( function ( ) {
/* condition */
}, function ( whilstCallback ) {
async.series( [
function ( seriesCallback ) { /* action 1 */ seriesCallback( ); },
window.setTimeout.bind( window, 1000 ),
function ( seriesCallback ) { /* action 2 */ seriesCallback( ); },
window.setTimeout.bind( window, 1000 ),
/* ... */
], whilstCallback );
} );