【问题标题】:CasperJS doesn't find jQuery [duplicate]CasperJS 找不到 jQuery [重复]
【发布时间】:2016-12-02 23:08:45
【问题描述】:

我正在使用 jQuery 选择器进行 casper.js 抓取。我明白有必要place the jQuery calls inside casper.evaluate()

问题是在以下三个函数的最后中,引发了ReferenceError: Can't find variable: $。前两个工作得很好。

// On main page, scrape links to sub-pages.
function getLinks() {
    var links = $('li.ds-artifact-item a');
    return Array.prototype.map.call(links, function(e) {
        return e.getAttribute('href');
    });
}

// On main page, scrape sub-pages' titles.
function getTitles() {
    var titles = $('li.ds-artifact-item a');
    return Array.prototype.map.call(titles, function(e) {
        return e.innerHTML;
    });
}

// On sub-page, scrape document description.
function getDescription(){
    var descriptions = $('td.label-cell:contains(date)');
    return Array.prototype.map.call(descriptions, function(e) {
        return e.innerHTML;
    });
}

这是脚本的其余部分,不重要的细节被遮盖了。请注意,anotherValidPage 是返回 HTTP 200(成功)的有效 URL。

var links = []; var titles = []; var descriptions = [];

casper.start(validPage, function() {
    links = this.evaluate(getLinks);
    titles = this.evaluate(getTitles);
});


casper.then(function() {
    // echo results
    this.echo(links.length + ' links found:');
    this.echo(' - ' + links.join('\n - '));
    this.echo(titles.length + ' titles found:');
    this.echo(' - ' + titles.join('\n - '));
    });

casper.thenOpen(anotherValidPage, function(){});

casper.then(function(){
    // This call is the problematic one.
    descriptions = this.evaluate(getDescription());

    this.echo(descriptions.length + ' descriptions found:');
    this.echo(' - ' + descriptions.join('\n - '));
});

casper.run();

【问题讨论】:

    标签: javascript jquery casperjs


    【解决方案1】:

    我找到了解决方案:我不得不调用this.evaluate(getDescription),而不是调用this.evaluate(getDescription()),因为我猜我是在执行函数而不是将它作为参数传递,哎呀。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      相关资源
      最近更新 更多