问题
I've downloaded the latest version of casperjs (1.03) and phantomjs (1.9.2).
So I took this little simple script from the casper page:
var casper = require('casper').create({
verbose: true,
logLevel: "debug"
});
var casper = new require('casper').Casper();
and when I try to run it I get the following error:
noname:phantomjs-1.9.2 Tom$ casperjs/bin/casperjs tipico2.js
Fatal: [Errno 2] No such file or directory; did you install phantomjs?
So, this is my directory structure:
phantomjs-1.9.2/ <-- the folder containing phantomjs
phantomjs-1.9.2/casperjs/ <-- a subfolder containting casperjs
Why does it not work?
回答1:
The solution is actually very simple. Just export the path where the binary of phantomjs is. In my case this is /Users/Tom/Downloads/phantomjs-1.9.2/bin, hence
export PATH=$PATH:/Users/Tom/Downloads/phantomjs-1.9.2/bin
回答2:
Faced the same problem when installed casper with npm globally on osx. At first I've set environment variable PHANTOMJS_EXECUTABLE to path where phantomjs was installed (it's usually /usr/local/lib/node_modules/casperjs/node_modules/phantomjs/lib/phantom/bin/phantomjs phantomjs) with
export PHANTOMJS_EXECUTABLE=/usr/local/lib/node_modules/casperjs/node_modules/phantomjs/lib/phantom/bin/phantomjs phantomjs
this helped only partially as I still got an error like there's no file nor folder /usr/local/bin/phantomjs, so I've just created symlink and pointed it to real binary folder with
ln -s /usr/local/lib/node_modules/casperjs/node_modules/phantomjs/lib/phantom/bin/phantomjs /usr/local/bin/phantomjs
hope this will help someone :)
回答3:
For OS X:
brew install casperjs --devel
brew install phantomjs
and it will works
回答4:
If you are getting this error in PHP, place this above your exec:
<?php
putenv("PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs");
?>
Where path /usr/local/bin/phantomjs
is the path to your phantomjs install. You can get this by typing which phantomjs
into terminal for example.
回答5:
Solution For Windows
STEP 1 - Go to Environment Variables
Start -> Environment Variables -> Environment Variables or My PC -> Properties -> Advanced System Settings -> Environment Variables
STEP 2 - Set new PATH to your PhantomJS/bin folder
Select PATH (User or System) -> Edit
New -> Browse -> find your BIN folder in PhantomJS installation on your HDD Accept
STEP 3 - Test Your Work
Open CMD -> Type "phantomjs -v"
You should get phantomJS version number as answer in any folder in your tree.
回答6:
I had this problem. Tried on 2 different windows machines.
Deleted all npm installed versions from node_modules folders and AppData / Roaming....
Deleted phantom and casper from c:/ where initially installed.
Downloaded phantom and extracted to Program Files folder from https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-windows.zip
Downloaded casper and extracted to Program Files folder from https://github.com/casperjs/casperjs/zipball/1.1.0
Set System Environment Variable C:\Program Files\phantomjs-2.1.1-windows\bin
Set System Environment Variable C:\Program Files\casperjs-casperjs-b5c59e1\bin
I DIDN'T set PHANTOMJS_EXECUTABLE as some other posts have mentioned. Not sure whether it would make a difference, but 100% working with above steps on Windows 10 with Phantom 2.1.1 and casper 1.1.0
回答7:
Faced the same problem after installing casperjs with npm globally on osx. The solution is actually very simple. You have to include these lines at the top of your script to connect casperjs with phantomjs.
phantom.casperPath = "/path_to/casperjs/";
phantom.injectJs(phantom.casperPath + "/bin/bootstrap.js");
来源:https://stackoverflow.com/questions/19476947/casperjs-does-not-find-phantomjs