我很想找到解決這個問題的辦法。如何在點擊後獲取更新的內容?
- 打開一個頁面anche得到具體聯繫
- 點擊一個鏈接(分頁鏈接)得到的結果的第二頁
- 閱讀新內容再次獲得新的鏈接....
這是我的一塊casperjs應用程序:
var page = 1;
function getLinks() {
var links = __utils__.getElementsByXPath('//div[@class="myDiv"]//a');
return Array.prototype.map.call(links, function(e) {
return e.getAttribute('href')
});
}
casper.start("www.example.com", function(){
//
})
casper.repeat(2, function() {
this.then(function(){
links = this.evaluate(getLinks);
links = links.concat(links);
});
this.then(function(){
page++;
this.clickLabel(String(page), 'a');
});
});
正如你可以看到我有內部重複兩個步驟。我已經設置了2個,因爲我只需要檢查兩個頁面。
目前我的問題是「點擊」。它的工作原理是因爲新的Url被調用,但問題是第一步將立即執行,因此新的內容未被完全加載。所以,當我再次調用getLinks()時,我仍然在處理以前的內容。
我明顯想在頁面完全加載時得到鏈接。我該怎麼做 ?
謝謝!
'setTimeout'並不適用於這種情況,因爲即使超時被用完之前,卡斯帕將只執行下一個計劃的步驟,並且退出。 –