用PhantomJS进行远程调试的设置[英] Getting remote debugging set up with PhantomJS

问题描述

我正在尝试使用 PhantomJS 设置远程调试,但运气不佳.我正在按照 https://github.com/ariya/phantomjs/wiki/Troubleshooting 中的说明进行操作.我有一个名为 debug.js:

的小程序
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));

现在我从命令行运行它:

$ phantomjs --remote-debugger-port=9001 --remote-debugger-autorun=yes debug.js my.xhtml

console.log 消息现在显示在 shell 窗口中.我打开一个浏览器页面到 localhost:9001.正是在这一点上,文档说"获取第一个虚拟上下文的网络检查器"但是,我只看到 about:blank 的单个条目.当我单击它时,我会得到一个检查器,用于检查不相关的 about:blank 页面,其 URL 为 http://localhost:9001/webkit/inspector/inspector.html?page=1.文档讨论了执行 __run(),但我似乎无法访问我要执行该操作的页面;about:html 似乎延续了一个 __run() ,它是一个空操作.

FWIW,我在 W8 下使用 PhantomJS 1.9.1.

我错过了什么?

推荐答案

文档说:

<块引用>

要运行您的脚本,只需在 Web 中输入 __run() 命令检查员控制台.

__run() 不是空操作,而只是脚本的包装器.您需要先选择控制台选项卡,然后在命令窗口中输入 __run().如果您熟悉 Chrome,它与开发人员工具几乎相同.

调试控制台

本文地址:https://www.itbaoku.cn/post/1739923.html