2014-09-10 11 views
6

I PhantomJS im Verzeichnis C: \ xampp \ htdocs \ Phantom und auch installiert ich CasperJS in diesem Ordner C: \ xampp \ htdocs \ casperkann nicht Modul 'casper' gefunden, wenn sie durch PhantomJS Aufruf

Als ich versuchte zu laufen dieser Beispielcode auf casper Website mit phantomjs test.js Befehl:

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

Es ist mir einen Fehler mir, dass zu sagen:

Error: Cannot find module 'casper'

Was habe ich falsch gemacht?

Antwort

7

Wenn Sie CasperJS durch PhantomJS laufen (da Sie phantomjs test.js aufrufen) Sie müssen einige Bootstrap-Code am Anfang des Skripts:

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

Beachten Sie, dass auch auf Windows, müssen Sie ein verwenden Schrägstrich.

Wenn Sie die Testumgebung benötigen, dann müssen Sie auch die Zeile:

phantom.casperTest = true; 

Alles aus dieser Frage genommen wird: Running 'casperjs test' in phantom

Obwohl dies möglich ist, dass Sie es nicht tun sollte. Sie sollten CasperJS direkt über seine ausführbare/Batch-Datei in node_modules/casperjs/batchbin aufrufen.

2

okay ich weiß, was ich falsch gemacht habe Ich hatte einen Fehler auf dem Pfad, den ich für casperjs verwendet habe, ich hätte "C: \ xampp \ htdocs \ casper \ batchbin" anstelle von "C: \ xampp \ htdocs \ casper" verwenden sollen \Behälter". Ich werde diesen Beitrag nicht löschen, dies könnte anderen Neulingen Casperjs genau wie ich helfen.

+0

Dies bietet keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag - du kannst deine eigenen Beiträge jederzeit kommentieren, und sobald du genügend [Reputation] (http://stackoverflow.com/help/whats-reputation) hast, wirst du das tun in der Lage sein [jeden Beitrag kommentieren] (http://stackoverflow.com/help/privileges/comment). –

+2

@DamienJoe Dies ist eine Antwort mit einem kleinen Kommentar dazu. –