我正在努力为这个问题找到解决方案。
- 打开一个页面并获取特定链接
- 点击一个链接(分页链接)获取第二页结果
- 阅读新内容并再次获取新链接....
这是我的 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() 时,我仍在处理以前的内容。
我显然想在页面完全加载时获取链接。我该怎么做 ?
谢谢!