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
。
我听说如果我在CasperJS中运行 selftest.js ,我可以看到问题所在。
所以我跑了,结果是:ReferenceError: patchRequire is not defined
。
我认为CasperJS文件有问题。
答案 0 :(得分:1)
我运行了您的程序,并且还收到了错误消息。
进行适当的修改后,以下代码将按预期工作:
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();
如果进行这些更改后仍然出现错误,建议您使用Official Installation Guide重新安装CasperJS(可能还包括PhantomJS)。