如何使用 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远程调试按inspect后出现的界面为空白,应如何解决?