如何使用 Chrome 远程调试 CasperJS?

Posted

技术标签:

【中文标题】如何使用 Chrome 远程调试 CasperJS?【英文标题】:How to remote debug CasperJS with Chrome? 【发布时间】:2014-12-25 04:40:01 【问题描述】:

在 Chrome 中调试 CasperJS 脚本的步骤是什么?我正在尝试在我的 Windows 8.1 上进行调试。

1) 我的测试 c:\temp\googletestin.js 有:

debugger;

casper.test.begin('Google search retrieves 10 or more results',3, function suite(test) 

    casper.start("http://www.google.com.br/", function() 
        this.echo(">>Number 1");
        test.assertTitle("Google", "Title home page google");

        casper.echo(">>Number 2");
        test.assertExists('form[action="/search"]', "find form search");

        casper.echo(">>Number 3");
        this.fill('form[action="/search"]', 
            q: "casperjs"
        , true);

        this.echo(">>Number 4");
        casper.capture('test.png', undefined, 
        format: 'png',
        quality: 75
        );

    )

    casper.run(function() 
        test.done();
    );
);

2) 打开 cmd.exe

3) 执行命令行

>casperjs test c:\temp\googletesting.js --remote-debugger-port=9222 --remote-debugger-autorun=yes

ps:测试正常运行到结束

4) 打开 chrome 并填写该网址:http:localhost:9222

5) 页面为空白

6) 打开控制台 (f12) 并执行:__run(); 但没有任何反应

【问题讨论】:

【参考方案1】:

在第 3 步中,您需要将调试器选项传递给 CasperJS,而不是可以通过 casper.cli 访问的脚本。您也不应该让脚本自动启动 (--remote-debugger-autorun=yes),否则它会在您调试之前运行。正如您所说的,您可以打开 Chrome/Safari 并调用 __run() 来触发脚本执行。

casperjs --remote-debugger-port=9222 test yourScript.js

【讨论】:

不起作用。页面消息“此页面不可访问”,我在控制台上执行第 6 步显示:__run 未定义 好的,当我使用自动启动时它不适合我,但在不使用时它确实有效。请再次通过答案检查。 在运行命令行“casperjs --remote...”之前,您是否以远程方式启动 chrome.exe?像这样:c:\program files\google\chrome\chrome.exe --remote-debugger-port-9222 或执行我提到的步骤?提醒您注意。 不,我像往常一样启动 chrome,没有特定的命令行参数,然后导航到 localhost:9222,然后单击 about:blank 链接,导航到控制台选项卡并输入 __run()。我想我可以用一个特定的命令行参数来试试。 当我用 phantomjs 进行测试时! phantomjs --remote-debugger-port=9000 "c:\temp\phantom.js

以上是关于如何使用 Chrome 远程调试 CasperJS?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过chrome远程调试获取网页资源内容

chrome远程调试按inspect后出现的界面为空白,应如何解决?

通过 Charles 代理 casperjs / phantomjs

使用chrome远程调试设备及调试模拟器设备

Chrome 远程调试 - 获取页面通知

如何通过Chrome远程调试android设备上的Web网站