我有一个页面,用于加载带有“详细信息”链接的项目列表。 单击此链接将打开一个模式弹出窗口,其中包含我需要的数据。
我想遍历每个“详细信息”链接,单击它以打开模式弹出窗口,读取数据,关闭它并继续下一个。
我将如何做到这一点?我不知道如何在循环中触发远程单击以打开模态,然后使用'.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
});
这适用于一个链接:)
非常感谢任何帮助!
由于
答案 0 :(得分: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();