在CasperJs中调试“about:blank”

时间:2012-12-11 11:13:53

标签: phantomjs casperjs

我在Windows 7机器上有以下简单的casperjs脚本(我无法命名实际的URL - 抱歉):

var casper = require('casper').create({verbose:true,logLevel: "debug"});

casper.start('https://[XXX].de', function() {
    console.log(this.getCurrentUrl());
});

casper.run();

输出声明它失败了 - 当前的网址是:“about:blank”

[info] [phantom] Starting...
[info] [phantom] Running suite: 2 steps
[debug] [phantom] opening url: https://[XXX].de, HTTP GET
[debug] [phantom] Navigation requested: url=https://[XXX].de, type=Other, lock=true, isMainFrame=true
[warning] [phantom] Loading resource failed with status=fail: https://[XXX].de
[debug] [phantom] Successfully injected Casper client-side utilities
about:blank
[info] [phantom] Step 2/2: done in 39205ms.
[info] [phantom] Done 2 steps in 39309ms

使用Firefox RESTCLient插件发送GET请求时,我得到:

Status Code: 200 OK
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection: close
Content-Type: text/html
Date: Tue, 11 Dec 2012 11:09:37 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Server: unknown
Transfer-Encoding: chunked

我的问题是:

我该如何调试?这是一个已知的问题吗?

2 个答案:

答案 0 :(得分:4)

似乎传递给casperjs的命令行参数没有传递给PhantomJS。我也遇到了这个问题并解决了这个问题,我运行了我的脚本如下:

PhantomJS.exe --ignore-ssl-errors=true myscript.js

当我尝试以相反的方式传递参数时

PhantomJS.exe myscript.js --ignore-ssl-errors=true

无法正常工作并提供与您所面临的相同的错误。

答案 1 :(得分:3)

要将phantomjs参数传递给casperjs,您可以直接更新casper二进制文件(Linux上的casperjs.py或Windows上的casperjs.bat)。

在Linux上,打开casperjs.py,更新正在形成CASPER_COMMAND命令的phantomjs数组并执行。

要添加“--ignore-ssl-errors = yes”,请按以下方式扩展CASPER_COMMAND

CASPER_COMMAND.extend(['--ignore-ssl-errors=yes']);

同样,在Windows上或者可以找到更多信息here