24

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?

Charles
  • 50,943
  • 13
  • 104
  • 142
toom
  • 12,864
  • 27
  • 89
  • 128

7 Answers7

23

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
toom
  • 12,864
  • 27
  • 89
  • 128
17

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 :)

Egor Litvinchuk
  • 1,800
  • 2
  • 14
  • 15
  • how do I use that variable then? this PHANTOMJS_EXECTUABLE - how do I use it? – ERJAN Jan 03 '16 at 10:57
  • @ERJAN you just need to set locate phantomjs binary and then set it to PHANTOMJS_EXECUTABLE in the console. then it will be used by casper to locate phantom and work properly – Egor Litvinchuk Mar 04 '16 at 21:10
  • 3
    For folks trying to use **CasperJS** with slimerjs (instead of phantomjs): I've gotten it to run, much like the above, by setting an equivalent environment variable `SLIMERJS_EXECUTABLE=/path/to/slimerjs` **but also** I had to pass `--engine=slimerjs` as an argument to the casperjs executable. – meetamit Apr 08 '16 at 23:27
5

For OS X:

brew install casperjs --devel

brew install phantomjs

and it will works

h0x91B
  • 1,211
  • 15
  • 19
  • `--devel` flag doesn't seem to work, but other than that, this works on High Sierra – matt Dec 15 '17 at 04:32
3

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.

digout
  • 4,041
  • 1
  • 31
  • 38
0

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.

lucaste
  • 562
  • 2
  • 8
  • 22
0

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

Pete Herc
  • 163
  • 10
0

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");
Shaily
  • 109
  • 3