4

我在 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();

输出表明它失败了 - 当前的 url 是:“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

我的问题是:

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

4

2 回答 2

4

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

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

当我尝试以另一种方式传递参数时

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

不起作用,并给出与您所面临的相同的错误。

于 2013-06-28T18:22:55.147 回答
3

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

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

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

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

同样,在 Windows 上或可以在此处找到更多信息

于 2013-09-19T12:14:27.893 回答