我们知道,casperjs执行任务的时候最终是要退出的。那么如何让它(隔一段时间)重复的执行一个相同的行为呢。如果你按我们平时的js循环思维去写,你肯定会失败,达不到预期的效果。
参考写法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
var
casper = require(
'casper'
).create({
pageSettings: {
loadImages:
false
,
loadPlugins:
false
},
logLevel:
"info"
,
verbose:
true
});
function
repeat() {
this
.echo(
'do something....'
);
});
casper.wait(5000,
function
(){
this
.echo(
'wait time over!'
)
});
casper.run(repeat);
}
casper.start().then(
function
(){
this
.echo(
'Starting...'
);
});
casper.run(repeat);
|
注意点:
- casperjs是一个链式的工作流程,你要像操作浏览器一样操作它去完成你的任务(事实上它就是一个工作在后台的浏览器内核)。比如先启动(start),然后(then)干点什么,然后(then)再干点什么(例如wait/waitForxxx)……
- 所以.最好只创建casper一个实例运行,如果你试图创建多个实例,程序往往会假死,不会(能)退出。