How Do I use jQuery in CasperJS?

Michael Yaworski picture Michael Yaworski · Jul 25, 2013 · Viewed 23.1k times · Source
casper.start(URL, function() {

    casper.page.injectJs('C:/Users/Mike/Documents/n1k0-casperjs-bc0da16/jquery-1.10.2.min.js');
    var names = $('span.author-name');
    this.echo(names);
    this.exit();
}

ReferenceError: Can't find variable: $

What do I do? I've tried this too when creating the casper instance:

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

    // I've tried both commented lines below

    // clientScripts: ['C:/Users/Mike/Documents/n1k0-casperjs-bc0da16/jquery-1.10.2.min.js']
    // clientScripts: ['includes/jquery-1.10.2.min.js']
});

Answer

jantimon picture jantimon · Jul 25, 2013

You have evaluate the jQuery code in the browser context using casper.evaluate

execute code as if you were using the browser console.

var nameCount = this.evaluate(function() {
    var names = $('span.author-name')
    return names.length;
});
this.echo(nameCount);