2013-10-23 34 views
1

我有一個頁面,加載具有'詳細'鏈接的項目列表。 點擊此鏈接將打開一個模式彈出窗口,其中包含我需要的數據。CasperJs:單擊一個循環中的鏈接打開模式彈出

我想遍歷每個'Details'鏈接,單擊它打開模式彈出窗口,讀取數據,關閉它並繼續下一步。

我該如何去做這件事?我不知道如何在循環中觸發遠程點擊以打開模式,然後使用'.waitForSelector'來讀取模式中的信息。

到目前爲止,我有:

casper.start(url); 

// How do i loop these two steps ?? 
casper.then(function() { 
    this.evaluate(function() { 
     var detailsBtn = Zepto('.details').first(); 
     detailsBtn.trigger('click'); 
    }); 
}); 

casper.waitForSelector('#popup-window', function() { 
    // read data from popup 
}); 

這對於一個鏈接:)

任何幫助,將不勝感激工作正常!

感謝

回答

2

好吧,我弄明白用在CasperJS group

這裏一些幫助,是任何人試圖類似的解決方案:

casper.start(url); 

var i = 1; 
casper.then(function loadResults(){ 
    var linkCount = this.getElementsInfo('.link').length; 
    console.log('Found ' + linkCount + ' links.'); 

    this.repeat(linkCount, function() { 

     try { 

      this.click('.link'); // opens modal popup 

      this.waitUntilVisible('#modal', function() { 

       // do work 

      }); 

      this.click('#close'); // close modal popup 

     } catch(err) { 
      console.log(err); 
     } finally { 
      i++; 
     } 

    }); 

}); 


casper.run(); 
+0

我認爲所有的'this.click'應是'this.thenClick'。 –

相關問題