2014-09-10 17 views
6

Tôi đã cài đặt PhantomJS trong C: \ xampp \ htdocs \ phantom và tôi cũng cài đặt CasperJS trong thư mục này C: \ xampp \ htdocs \ casperKhông thể tìm thấy mô-đun 'casper' khi triệu gọi thông qua PhantomJS

Khi tôi cố gắng chạy những mẫu mã trên trang web casper sử dụng phantomjs test.js lệnh:

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

Nó mang lại cho tôi một lỗi nói với tôi rằng:

Error: Cannot find module 'casper'

tôi đã làm gì sai?

Trả lời

7

Nếu bạn muốn chạy CasperJS qua PhantomJS (kể từ khi bạn gọi phantomjs test.js), bạn cần một số mã bootstrapping vào đầu của kịch bản:

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

Hãy nhớ rằng ngay cả trên cửa sổ, bạn cần phải sử dụng một dấu gạch chéo phía trước.

Nếu bạn cần môi trường thử nghiệm sau đó bạn cũng cần dòng:

phantom.casperTest = true; 

Mọi thứ đều được lấy từ câu hỏi này: Running 'casperjs test' in phantom

Mặc dù điều này có thể bạn không nên làm điều đó. Bạn nên gọi CasperJS trực tiếp thông qua tập tin thực thi/batch của nó trong node_modules/casperjs/batchbin.

2

okay tôi biết những gì tôi đã làm sai tôi đã có một sai lầm trên con đường tôi được sử dụng cho casperjs, tôi nên đã sử dụng "C: \ xampp \ htdocs \ casper \ batchbin" thay vì "C: \ xampp \ htdocs \ casper \ bin ". tôi sẽ không xóa bài đăng này, điều này có thể giúp những người mới khác chơi casperj giống như tôi.

+0

Điều này không cung cấp câu trả lời cho câu hỏi. Để phê bình hoặc yêu cầu làm rõ từ tác giả, để lại nhận xét bên dưới bài đăng của họ - bạn luôn có thể nhận xét về bài đăng của riêng bạn và sau khi bạn có đủ [danh tiếng] (http://stackoverflow.com/help/whats-reputation), bạn sẽ có thể [nhận xét về bài đăng bất kỳ] (http://stackoverflow.com/help/privileges/comment). –

+2

@DamienJoe Đây là câu trả lời với một chút bình luận xung quanh nó. –

Các vấn đề liên quan