不安全 javascript 通过 npm 安装 casperjs 时尝试访问框架 windows

Unsafe javascript attempt to access frame when installing casperjs through npm windows

我已经通过 npm 在我的 windows 机器上安装了 casperjs 和 phantomjs。但是我遇到了这个问题。

C:\>casperjs sample.js

C:\>Unable to open file: sample.js
Unsafe JavaScript attempt to access frame with URL about:blank from frame
with URL file:///C:/Users/vini/AppData/Roaming/npm/node_modules/casperjs/bin/bootstrap.js.
Domains, protocols and ports must match.

这是 CasperJS 和 1.9.8 版 PhantomJS 的已知问题。它什么都不做,错误只会在退出时打印出来。他们不会干扰您的脚本。有一个解决方法,它已合并到 GitHub 的 master 分支中,但它还不能作为 CasperJS 的发行版使用(最新版本是 1.1-beta3)。

解决这个问题的最简单的方法是降级到 PhantomJS 1.9.7。由于您使用的是 NPM,因此可以使用

轻松完成
npm -g install phantomjs@1.9.7-15

PhantomJS 版本与 NPM phantomjs 包版本匹配,直到 1.9.7,然后一切都崩溃了。您可以使用 npm show phantomjs.

检查版本

如果您降级到版本 1.9.7,对于请求 https 资源的站点,您将必须 运行 使用 --ssl-protocol=any 命令行选项。原因见我的回答here.

解决此问题的正确方法install a new version from git。这将使您不仅可以使用没有额外错误行的 PhantomJS 1.9.8,还可以使用 CasperJS 1.1-beta3 无法使用的 PhantomJS 2。

参考文献:
GitHub issue #1068
Workaround for CasperJS #1139
PhantomJS issue on SO

使用 “phantomjs": "^1.9.9" 对于 caseperJs

casperjs --ssl-protocol=tlsv1 test  run.js