Tôi đang cố gắng thiết lập gỡ lỗi từ xa bằng PhantomJS, mà không có nhiều may mắn. Tôi đang làm theo hướng dẫn tại https://github.com/ariya/phantomjs/wiki/Troubleshooting. Tôi có một chương trình nhỏ có tên debug.js
:Bắt gỡ lỗi từ xa được thiết lập với PhantomJS
var system = require('system'), fs = require('fs'), webpage = require('webpage');
(function(phantom){
var page=webpage.create();
function debugPage(){
console.log("Refresh a second debugger-port page and open a second webkit inspector for the target page.");
console.log("Letting this page continue will then trigger a break in the target page.");
debugger; // pause here in first web browser tab for steps 5 & 6
page.open(system.args[1]);
page.evaluateAsync(function() {
debugger; // step 7 will wait here in the second web browser tab
});
}
debugPage();
}(phantom));
Bây giờ tôi chạy từ dòng lệnh:
$ phantomjs --remote-debugger-port=9001 --remote-debugger-autorun=yes debug.js my.xhtml
Các thông điệp console.log
tại được hiển thị trong cửa sổ shell. Tôi mở một trang trình duyệt tới localhost:9001
. Đó là vào thời điểm này tài liệu nói rằng "có được thanh tra web đầu tiên cho bối cảnh ảo" Tuy nhiên, tôi chỉ thấy một mục duy nhất cho about:blank
. Khi tôi nhấp vào đó, tôi sẽ có một thanh tra viên không liên quan về: trang trống, với URL http://localhost:9001/webkit/inspector/inspector.html?page=1
. Tài liệu thảo luận về việc thực hiện __run()
, nhưng tôi dường như không thể truy cập trang mà tôi sẽ làm điều đó; about:html
dường như contina a __run()
là một no-op.
FWIW, tôi đang sử dụng PhantomJS 1.9.1 trong W8.
Tôi đang thiếu gì?
tôi sử dụng [này] (http://blog.trackets.com/2014/05/17/ssh-tunnel-local-and-remote-port-forwarding-explained-with-examples. html) để chuyển tiếp cổng cục bộ tới cổng máy chủ web từ xa thay thế. –