Javascript CasperJS在每个URL中循环

Javascript CasperJS在每个URL中循环,javascript,Javascript,这个问题是,但我遇到的问题更基本 这是我的代码: var links = []; var casper = require('casper').create(); function getLinks() { var links = document.querySelectorAll('div#mw-content-text table.wikitable tbody tr td i b a'); return Array.prototype.map.call(links, fu

这个问题是,但我遇到的问题更基本

这是我的代码:

var links = [];
var casper = require('casper').create();

function getLinks() {
    var links = document.querySelectorAll('div#mw-content-text table.wikitable tbody tr td i b a');
    return Array.prototype.map.call(links, function(e) {
        return 'https://en.wikipedia.org' + e.getAttribute('href');
    });
}

casper.start('https://en.wikipedia.org/wiki/David_Bowie_discography');

casper.then(function() {
    // aggregate results for the 'casperjs' search
    links = this.evaluate(getLinks);
});

casper.each(links, function (self, link) {
    self.thenOpen(fullURL, function () {
        this.echo(this.getTitle() + " - " + link);
    });
});

casper.run();
我知道
links
是在从中复制时创建的,但随后我对其进行了修改,以打开找到的所有链接

我得到的是,没有什么是回声,而不是输出每个标题,这是我所期望的。以下是我调用该文件的方式:

~ $ casperjs casper-google-disco.js

最终修复非常简单,但我花了很长时间才找到,因为没有错误,而且似乎没有其他人碰到过

问题是在调用
每个
之前,没有设置
链接
变量。将
每个
放在
中,然后
函数解决了我的问题

CasperJS示例中的示例有助于确认您可以在不需要任何验证的情况下通过数组进行循环


最终修复非常简单,但我花了很长时间才找到,因为没有错误,而且似乎没有其他人碰到过

问题是在调用
每个
之前,没有设置
链接
变量。将
每个
放在
中,然后
函数解决了我的问题

CasperJS示例中的示例有助于确认您可以在不需要任何验证的情况下通过数组进行循环

var links = [];
var casper = require('casper').create();

function getLinks() {
    var links = document.querySelectorAll('div#mw-content-text table.wikitable tbody tr td i b a');
    return Array.prototype.map.call(links, function(e) {
        return 'https://en.wikipedia.org' + e.getAttribute('href');
    });
}

casper.start('https://en.wikipedia.org/wiki/David_Bowie_discography');

casper.then(function() {
    // aggregate results for the 'casperjs' search
    links = this.evaluate(getLinks);

    casper.each(links, function (self, link) {
        self.thenOpen(link, function () {
            this.echo(this.getTitle() + " - " + link);
        });
    });
});


casper.run();