2014-09-10 7 views
6

ho installato PhantomJS in C: \ xampp \ htdocs \ fantasma e anche io installato CasperJS in questa cartella C: \ xampp \ htdocs \ CasperImpossibile trovare il modulo 'Casper' quando si richiama attraverso PhantomJS

Quando ho provato a correre questi codice di esempio sul sito Casper utilizzando phantomjs test.js comando:

var casper=require('casper').create(); 
casper.start('http://google.fr/'); 

casper.thenEvaluate(function(term) { 
    document.querySelector('input[name="q"]').setAttribute('value', term); 
    document.querySelector('form[name="f"]').submit(); 
}, 'CasperJS'); 

casper.then(function() { 
    // Click on 1st result link 
    this.click('h3.r a'); 
}); 

casper.then(function() { 
    console.log('clicked ok, new location is ' + this.getCurrentUrl()); 
}); 

casper.run(); 

mi dà un errore che mi diceva che:

Error: Cannot find module 'casper'

che cosa ho fatto di sbagliato?

risposta

7

Se si desidera eseguire CasperJS attraverso PhantomJS (dal momento che si richiama phantomjs test.js) è necessario un codice di bootstrap all'inizio dello script:

phantom.casperPath = 'path/to/node_modules/casperjs'; 
phantom.injectJs('path/to/node_modules/casperjs/bin/bootstrap.js'); 

Tenete a mente che anche su Windows, è necessario utilizzare un barra.

Se avete bisogno di un ambiente di prova, allora hai bisogno anche la linea:

phantom.casperTest = true; 

tutto è preso da questa domanda: Running 'casperjs test' in phantom

Anche se questo è possibile, non si dovrebbe fare. Dovresti invocare CasperJS direttamente attraverso il suo file eseguibile/batch in node_modules/casperjs/batchbin.

2

ok so cosa ho sbagliato ho avuto un errore sul percorso che ho usato per casperjs, avrei dovuto usare "C: \ xampp \ htdocs \ casper \ batchbin" invece di "C: \ xampp \ htdocs \ casper \bidone". Non cancellerò questo post, questo potrebbe aiutare altri neofiti a casperjs proprio come me.

+0

Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti da un autore, lascia un commento sotto il loro post - puoi sempre commentare i tuoi post, e una volta che hai [reputazione] sufficiente (http://stackoverflow.com/help/whats-reputation) essere in grado di [commentare qualsiasi post] (http://stackoverflow.com/help/privileges/comment). –

+2

@DamienJoe Questa è una risposta con un piccolo commento intorno ad esso. –