Casperjs迴圈執行(重複執行不退出)

sqzhao發表於2015-07-23

我們知道,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() {
    casper.thenOpen('http://www.baidu.com').then(function(){
        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一個例項執行,如果你試圖建立多個例項,程式往往會假死,不會(能)退出。

相關文章