2012-06-28 27 views
9

Tôi cố gắng để sử dụng CasperJS để cạo một trang web có nội dung động và đang thất bại cho đến nay. Trang web sử dụng một vài js libaries (ví dụ: Prototype) để sử dụng tính năng tự động hoàn tất để tạo nội dung. Do đó, tôi đang cố chèn một số giá trị và kích hoạt các sự kiện để thiết lập việc tạo nội dung. Chèn và kích hoạt các sự kiện hoạt động tốt, nhưng không có nội dung nào được tạo.injectJs với PhantomJs và CasperJs

Tôi mới vào CasperJS và thấy rằng nó có vấn đề với đường dẫn tương đối so với libaries. Tôi nghi ngờ rằng vấn đề của tôi phát sinh từ các libaries không tải đúng trong môi trường trang của tôi. Vì vậy, tôi cố gắng sử dụng injectJs để tiêm cho họ như thế này

// ... tạo casper và làm một số công cụ khác

casper.then (function() {

this.echo(this.page.injectJs('http://www.my-website.com/path/to/js1')); 
this.echo(this.page.injectJs('http://www.my-website.com/path/to/js2')); 

}); 

Thật không may này trả về false cho cả hai chức năng. đường dẫn đến kịch bản là đúng, nơi nào khác có thể là gốc rễ của vấn đề này?

Thank yo u rất nhiều cho bất kỳ sự giúp đỡ.

Trả lời

4

Tôi không tin rằng CasperJS có thể xử lý yêu cầu HTTP để chèn tập lệnh. Điều này là lạ bởi vì họ thực sự hiển thị này in their FAQ on including jQuery. Tuy nhiên, cùng một Câu hỏi thường gặp đó cho biết:

Bạn không thể chèn tập lệnh bằng giao thức HTTP, bạn thực sự phải sử dụng đường dẫn hệ thống tệp tương đối/tuyệt đối đến tài nguyên tập lệnh.

Chỉ cần kiểm tra kỹ, tôi đã tự mình thử sử dụng Mac OS X và mã trên của bạn. Kết quả của tiếng vang là false khi sử dụng tệp qua http và true khi nó ở địa phương.

+0

Cảm ơn. Tôi đoán cách tốt nhất là tải xuống các tập lệnh và sau đó bao gồm chúng từ các đường dẫn cục bộ. – Marco

+3

Đối với các hồ sơ tôi đã cập nhật tài liệu cho phù hợp, xin lỗi vì sai lầm đó. – NiKo

+0

Tôi nghĩ bạn có thể sử dụng 'remoteScripts' để tiêm kịch bản phi địa phương tại – wildpeaks

1

đây là cách tôi Tiêm Jquery trong Casperjs kịch bản

casper.options.clientScripts = ["jquery-3.2.1.min.js"] 

tập tin jquery nên trên cùng một thư mục nơi casperjs kịch bản exisit

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