我猜(沒有證明這一點)的問題之一是,你定義數組內的評價,反正我可以給你,你這個問題的解決方案(getAllHref):
var casper = require('casper').create();
var url = "yourTargetUrl";
var links;
function getAllHref() {
var hrefs = casper.evaluate(function() {
return Array.prototype.map.call(document.querySelectorAll('a'), function(e) {
return e.getAttribute('href');
});
});
return hrefs;
}
casper.start(url);
casper.then(function() {
// statements
links = getAllHref();
});
casper.then(function() {
// show all links at once
casper.echo(JSON.stringify(links));
// show single hrefs
while (links.length > 0) {
link = links.pop();
(function(link) {
casper.then(function() {
casper.echo('link: ' + link);
});
})(link);
}
});
casper.run();