CasperJS – Navigation scripting & testing for PhantomJS and SlimerJS

http://casperjs.org/

CasperJS est un outil d’automatisation permettant de naviguer sur des pages web et de lancer des tests ou d’extraire des informations.

image

Le script ci-dessous navigue sur deux sites web et en extrait le contenu de la balise <title>.

var casper = require('casper').create();
casper.start('http://casperjs.org/');

casper.then(function() {
    this.echo('First Page: ' + this.getTitle());
});

casper.thenOpen('http://phantomjs.org', function() {
    this.echo('Second Page: ' + this.getTitle());
});

casper.run();

Ce qui donne

First Page: CasperJS - a navigation scripting &amp; testing utility for PhantomJS and SlimerJS written in Javascript
Second Page: PhantomJS | PhantomJS

Autre exemple : récupérer les liens

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();
});

Ce qui donne

http://docs.casperjs.org/en/latest/quickstart.html
http://docs.casperjs.org/en/latest/
https://github.com/casperjs/casperjs
https://groups.google.com/forum/#!forum/casperjs
[...]