toom
toom

Reputation: 13347

casperjs does not find phantomjs

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?

Upvotes: 24

Views: 22519

Answers (7)

Shaily
Shaily

Reputation: 109

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");

Upvotes: 0

Pete Herc
Pete Herc

Reputation: 163

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

Upvotes: 0

digout
digout

Reputation: 4252

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.

Upvotes: 3

lucaste
lucaste

Reputation: 570

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.

Upvotes: 0

h0x91B
h0x91B

Reputation: 1256

For OS X:

brew install casperjs --devel

brew install phantomjs

and it will works

Upvotes: 5

Egor Litvinchuk
Egor Litvinchuk

Reputation: 1870

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

Upvotes: 17

toom
toom

Reputation: 13347

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

Upvotes: 23

Related Questions