2013-03-15 73 views
1

我需要同時運行3個url請求。我想運行3個casper實例,每個提取一個url。作爲一個簡單的例子,我嘗試了2個實例。運行casperjs的多個實例

var casper=require('casper').create(); 
casper.start('http://www.google.com'); 

var casper1=require('casper').create(); 
casper1.start('http://www.google.com'); 

casper1.then(function() { 
    casper1.echo('inside'); 
}); 
casper1.echo('outside'); 

casper1.run(); 
casper.run(); 

輸出僅顯示 'outside'.Why一點兒也不它運行casper1.echo(' 內部「);

回答

2

CasperJS使用一系列命令,無論何時使用api(start,then,thenOpen等)中的某個函數,都會創建這些命令。一旦所有項目都在堆棧中排隊,您可以通過執行casper.run()來按順序執行它們。如果沒有添加到堆棧中,卡斯帕將不會執行它。

簡而言之,casper1.echo('outside')沒有被執行,因爲它從未被添加到堆棧中。

他們的FAQ關於這個話題更詳細地分解了它。