1

我有一个页面加载带有“详细信息”链接的项目列表。单击此链接将打开一个模式弹出窗口,其中包含我需要的数据。

我想遍历这些“详细信息”链接中的每一个,单击它以打开模式弹出窗口,读取数据,将其关闭并继续下一个。

我该怎么做呢?我不确定如何在循环中触发远程单击以打开模式,然后使用“.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
});

这适用于一个链接:)

任何帮助将不胜感激 !

谢谢

4

1 回答 1

2

好的,我在 CasperJS小组的一些帮助下弄清楚了

这是任何尝试类似事情的人的解决方案:

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();
于 2013-10-23T12:16:02.713 回答