在常规 JavaScript 文件中使用 CasperJS

Using CasperJS within a regular JavaScript file

我正在尝试创建一个在其中使用 CasperJS 的 NodeJS 程序。我有 运行 错误,找不到模块 'casper'。结果,我尝试 npm install spooky --save 因为我读到它是一个驱动程序,但我仍然遇到与之前相同的错误。

此外,在尝试安装 SpookyJS 之前,我尝试了

 var phantom = require('phantom');

 phantom.casperPath = '/path/to/casperjs';
 phantom.injectJs(phantom.casperPath + '/bin/bootstrap.js');

这给了我 injectJs 不是函数的错误。任何帮助表示赞赏。

您不能将 js 文件包含到 phantom 中。你需要打开一个页面,然后你可以在其中包含 js。页面将接受 js 文件。不是幻影。

请参考this

includeJs(url, callback) {void}

Includes external script from the specified url (usually a remote location) on the page and executes the callback upon completion.

首先要结合实际情况,给大家一个重要提示:

While CasperJS is installable via npm, it is not a NodeJS module and will not work with NodeJS out of the box. You cannot load casper by using require(‘casperjs’) in node. Note that CasperJS is not capable of using a vast majority of NodeJS modules out there. Experiment and use your best judgement.

这就是 SpookyJS 发挥作用的地方...但是如何让它发挥作用呢? (我假设你在 Linux。)

1。确保你有合适的环境

  • Node.js >= 0.8
  • PhantomJS >= 1.9
  • CasperJS >= 1.0

注意: SpookyJS 在我的电脑上运行(Arch Linux)并且我有以下设置:

node --version ---> v7.7.4
npm --version ---> 4.4.4
phantomjs --version ---> 2.1.1
casperjs --version ---> 1.1.3

PhantomJSCasperJS 全局安装。

2。在本地安装 SpookyJS(及其依赖项:tiny-jsonrpc

创建一个空目录并在里面运行 npm i spooky tiny-jsonrpc。我们这里不需要 package.json,所以你可以忽略 --save--save-dev.

3。测试给定的例子

如果安装了 SpookyJS,您应该有一个本地 node_modules 目录。现在,尝试 运行 以下命令:

node node_modules/spooky/examples/hello.js

如果您收到“你好,来自 Spooky the Tuff Little Ghost - 维基百科”,恭喜!您现在可以将 SpookyJS 集成到您的项目中,但您必须遵守 hello.js...

中提供的语法