22
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']
});
Michael Yaworski
  • 13,410
  • 19
  • 69
  • 97
  • possible duplicate of [CasperJS Can't find variable $](http://stackoverflow.com/questions/15981450/casperjs-cant-find-variable) – jantimon Jul 25 '13 at 14:53

2 Answers2

38

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);
jantimon
  • 36,840
  • 23
  • 122
  • 185
0

Download the library then add its path using the clientScripts option:

var casper = require("casper").create({
    clientScripts:  [
        'path/jquery-3.3.1.min.js'
    ]
});

And you are good to go with $(selector).

mustapha mekhatria
  • 3,495
  • 1
  • 20
  • 26