2015-11-11 14 views
0

这是我的完整代码..我想要的是casper.wait有1-3秒的随机等待时间。如果我把 “casper.wait(1000,函数(){” 输入一个数值,如果它的工作原理,但casper.wait(时间,函数(){输入变量值是行不通的。如何在CasperJS中设置wait()的值?

casper.then(function() { 
 

 
    this.echo('Looking random number.....'); 
 
    rrandom = Math.round(Math.random() * 3); 
 

 
    if (rrandom == 1) { 
 
    time = 1000 
 
    } 
 
    if (rrandom == 2) { 
 
    time = 2000 
 
    } 
 
    if (rrandom == 3) { 
 
    time = 3000 
 
    } 
 
}); 
 

 
casper.wait(time, function() { 
 
    this.echo('result'); 
 
}); 
 

 

 
casper.run();

+0

这将作为你所期望的。我怀疑这是你的周边代码的问题。你能举一个完整的例子吗? –

+0

不起作用,我认为wait()与变量值不兼容只有号码 –

回答

1

在您的样品rrandom有时将等于0,因为Math.round()轮< 0.49至零值。因此时间有时将未定义的,破脚本。

我建议是这样的:

var time; 
casper.then(function() { 
    var maxSecTimeout = 3; 

    this.echo('Pausing for ' + maxSecTimeout + ' seconds'); 

    time = Math.ceil(Math.random() * maxSecTimeout) * 1000; 
}); 

casper.wait(time, function() { 
    this.echo('result'); 
}); 

casper.run(); 
+0

不起作用,我认为wait()与变量值不兼容只有数字 –

+1

'time'是一个局部变量,在下面的'wait'调用中不可用,因为引用了全局'time'变量。 –

+0

如果这个已经在使用中,请告诉我我可以如何使用gratificarle。非常感谢 –