Пример кода CasperJS не работает - PullRequest
0 голосов
/ 04 мая 2018
var casper = require('casper').create();
var links;

function getLinks() {
// Scrape the links from top-right nav of the website
var links = document.querySelectorAll('ul.navigation li a');
return Array.prototype.map.call(links, function (e) {
    return e.getAttribute('href')
});
}

// Opens casperjs homepage
casper.start('http://casperjs.org/');

casper.then(function () {
links = this.evaluate(getLinks);
});

casper.run(function () {
for(var i in links) {
    console.log(links[i]);
}
casper.done();
});

Я получил ошибку, связанную с casper.start(), поэтому я протестировал исходный код, ожидая, что он будет работать должным образом, если на моем компьютере не будет ничего отличного от других обычных компьютеров, опубликованных в http://casperjs.org/.

Но я получил сообщение об ошибке: casper.start() is not function.

Я слышал, если я запускаю selftest.js в CasperJS, я вижу, в чем проблема.

Итак, я запустил его, и результат был: ReferenceError: patchRequire is not defined.

Я думаю, что-то не так с файлом CasperJS.

1 Ответ

0 голосов
/ 06 июля 2018

Я запустил вашу программу, и я также получил ошибку.

После внесения соответствующих изменений следующий код работал как положено:

var casper = require('casper').create();

function getLinks () {
  // Scrape the links from top-right nav of the website
  var links = document.querySelectorAll('ul.navigation li a');

  return Array.prototype.map.call(links, function (e) {
    return e.getAttribute('href');
  });
}

// Opens CasperJS homepage
casper.start('http://casperjs.org/');

casper.then(function () {
  var links = this.evaluate(getLinks);

  for (var i in links) {
    this.echo(links[i]);
  }
});

casper.run();

Если вы все еще получаете ошибки после внесения этих изменений, я бы рекомендовал переустановить CasperJS (и, возможно, PhantomJS), используя Официальное руководство по установке .

...