casperjs没有找到phantomjs

too*_*oom 24 path phantomjs casperjs

我已经下载了最新版本的casperjs(1.03)和phantomjs(1.9.2).

所以我从casper页面中获取了这个简单的小脚本:

var casper = require('casper').create({
    verbose: true,
    logLevel: "debug"
});
var casper = new require('casper').Casper();
Run Code Online (Sandbox Code Playgroud)

当我尝试运行它时,我收到以下错误:

noname:phantomjs-1.9.2 Tom$ casperjs/bin/casperjs tipico2.js 
Fatal: [Errno 2] No such file or directory; did you install phantomjs?
Run Code Online (Sandbox Code Playgroud)

所以,这是我的目录结构:

phantomjs-1.9.2/ <-- the folder containing phantomjs
phantomjs-1.9.2/casperjs/ <-- a subfolder containting casperjs
Run Code Online (Sandbox Code Playgroud)

为什么不起作用?

too*_*oom 23

解决方案实际上非常简单.只需导出phantomjs的二进制文件所在的路径.在我的例子中,这是/Users/Tom/Downloads/phantomjs-1.9.2/bin,因此

export PATH=$PATH:/Users/Tom/Downloads/phantomjs-1.9.2/bin
Run Code Online (Sandbox Code Playgroud)

  • 您也可以设置环境变量,而不是修改PATH.`PHANTOMJS_EXECUTABLE = /用户/汤姆/下载/ phantomjs-1.9.2/bin中/ phantomjs` (19认同)

Ego*_*huk 17

在osx上全局安装带有npm的casper时遇到同样的问题.首先,我将环境变量PHANTOMJS_EXECUTABLE设置为安装了phantomjs的路径(通常是/ usr/local/lib/node_modules/casperjs/node_modules/phantomjs/lib/phantom/bin/phantomjs phantomjs)

export PHANTOMJS_EXECUTABLE=/usr/local/lib/node_modules/casperjs/node_modules/phantomjs/lib/phantom/bin/phantomjs phantomjs
Run Code Online (Sandbox Code Playgroud)

这只是部分帮助,因为我仍然有一个错误,如没有文件或文件夹/ usr/local/bin/phantomjs,所以我刚刚创建了符号链接并指向真正的二进制文件夹

ln -s /usr/local/lib/node_modules/casperjs/node_modules/phantomjs/lib/phantom/bin/phantomjs /usr/local/bin/phantomjs
Run Code Online (Sandbox Code Playgroud)

希望这会帮助别人:)

  • 对于那些尝试使用**CasperJS**和slimerjs(而不是phantomjs)的人:通过设置一个等效的环境变量`SLIMERJS_EXECUTABLE =/path/to/slimerjs`**,我已经让它运行了,就像上面一样,但是另外**我必须将`--engine = slimerjs`作为参数传递给casperjs可执行文件. (3认同)

h0x*_*91B 5

对于OS X:

brew install casperjs --devel

brew install phantomjs

它会起作用