2014-09-10 2 views
6

я установил PhantomJS в C: \ XAMPP \ HTDOCS \ фантома, а также я установил CasperJS в этой папке C: \ XAMPP \ HTDOCS \ CasperНе удается найти модуль 'Каспер' при вызове через PhantomJS

Когда я попытался запустить эти примеры кода на Casper сайте, используя phantomjs test.js команду:

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

Это дает мне сообщение об ошибке говорит мне, что:

Error: Cannot find module 'casper'

что я сделал не так?

ответ

7

Если вы хотите запустить CasperJS через PhantomJS (так как вы вызываете phantomjs test.js) вам понадобится самонастройки код в начале сценария:

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

Имейте в виду, что даже на окнах, вам нужно использовать косая черта.

Если вам нужна тестовая среда, то вам также необходима строка:

phantom.casperTest = true; 

Все берется из этого вопроса: Running 'casperjs test' in phantom

Хотя это возможно, вы не должны делать это. Вы должны вызывать CasperJS непосредственно через исполняемый файл/пакетный файл в node_modules/casperjs/batchbin.

2

okay Я знаю, что я сделал не так, я ошибся на пути, который я использовал для casperjs, я должен был использовать «C: \ xampp \ htdocs \ casper \ batchbin» вместо «C: \ xampp \ htdocs \ casper \ Bin». я не удалю это сообщение, это может помочь другим новичкам в casperjs, как и я.

+0

Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий ниже своего сообщения - вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно [репутации] (http://stackoverflow.com/help/whats-reputation), вы будете быть в состоянии [прокомментировать любое сообщение] (http://stackoverflow.com/help/privileges/comment). –

+2

@DamienJoe Это ответ с небольшим комментарием. –

Смежные вопросы