2013-07-16 22 views
2

我想將數組中的多個URL傳遞到以下示例代碼中。將參數傳入casperjs.start

casper.start('http://www.weather.com/', function() { 
    this.captureSelector('weather.png', '#wx-main'); 
}); 

casper.run(); 

我想某種程度上想創建一個for循環來運行這段代碼,而將URL替換爲一個存儲在數組中的URL。

當我試圖將任何參數傳遞給它時,我只是得到錯誤。

我的「代碼」:

links = [ 
    'http://www.cnn.com/', 
    'http://www.weather.com/', 
    'http://www.google.com/', 
    'http://www.stackoverflow.com/' 
    ]; //array of links 
casper.echo(links.length +' included links.'); //total number of links in array 

//begin for loop of urls 
for (i = 0; i < links.length; i++) { 

    casper.echo(links[i]); 
    function captureurl(links[i]); 

} 

function captureurl(cpurl){ 
casper.start(cpurl, function() { 
this.captureSelector('capture/capture'+i+'.png', '#body'); 
}); 

casper.run(); 
} 

for循環能夠上市的環節,但每當我嘗試任何參數傳遞到這裏拋出錯誤:casper.start(cpurl,函數(){

感謝所有幫助任何人都可以給我

+0

我想你只能調用一次。開始 - 你想.thenOpen – nrabinowitz

+0

所以由於某種原因,我似乎無法通過任何使用功能參數我的網址的。有沒有什麼明顯的,我正在做的事情呢?該循環將愉快地顯示數組「casper.echo(links [i])」中的所有元素,但該函數並沒有給我提供任何信息。 –

+0

好的!經過相當多的修補之後,我把這個函數分成了兩個單獨的函數,在for循環中有一個if語句,用於確定它是否首次捕獲數組(使用.start),然後使用.thenOpen。儘管我還沒有在一個更大的陣列上測試它,但它仍然工作得很好,但我希望它能夠工作!感謝您的建議!作爲一個總的新手,並且比我可以咀嚼這個項目(我唯一保持興趣和學習的唯一方式)稍微咬人,你的幫助非常棒! –

回答