Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript CasperJs:单击循环中的链接以打开模式弹出窗口_Javascript_Phantomjs_Casperjs - Fatal编程技术网

Javascript CasperJs:单击循环中的链接以打开模式弹出窗口

Javascript CasperJs:单击循环中的链接以打开模式弹出窗口,javascript,phantomjs,casperjs,Javascript,Phantomjs,Casperjs,我有一个页面,加载带有“详细信息”链接的项目列表。 单击此链接将打开一个模式弹出窗口,其中包含我需要的数据 我想循环浏览每个“详细信息”链接,单击它打开模式弹出窗口,读取数据,关闭它,然后继续下一步 我该怎么做呢?我不知道如何在循环中触发远程单击以打开模式,然后是“.waitForSelector”以读取模式中的信息 到目前为止,我已经: casper.start(url); // How do i loop these two steps ?? casper.then(function()

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

我想循环浏览每个“详细信息”链接,单击它打开模式弹出窗口,读取数据,关闭它,然后继续下一步

我该怎么做呢?我不知道如何在循环中触发远程单击以打开模式,然后是“.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
});
这适用于一个链接:)

任何帮助都将不胜感激


谢谢

好的,我在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();

我认为所有的
这个。点击
应该是
这个。然后点击