Why does this say "PhantomJS not found?"

Bruce Gust
Bruce Gust used Ask the Experts™
on
I'm working with PhantomJS (http://phantomjs.org/screen-capture.html). The example is a real straight forward looking piece of code, but I keep getting an error that says "phantomjs not found." See the screenshot below:

command line screen
...and then the rasterize.js code:

"use strict";
var page = require('webpage').create(),
    system = require('system'),
    address, output, size;

if (system.args.length < 3 || system.args.length > 5) {
    console.log('Usage: rasterize.js URL filename [paperwidth*paperheight|paperformat] [zoom]');
    console.log('  paper (pdf output) examples: "5in*7.5in", "10cm*20cm", "A4", "Letter"');
    console.log('  image (png/jpg output) examples: "1920px" entire page, window width 1920px');
    console.log('                                   "800px*600px" window, clipped to 800x600');
    phantom.exit(1);
} else {
    address = system.args[1];
    output = system.args[2];
    page.viewportSize = { width: 600, height: 600 };
    if (system.args.length > 3 && system.args[2].substr(-4) === ".pdf") {
        size = system.args[3].split('*');
        page.paperSize = size.length === 2 ? { width: size[0], height: size[1], margin: '0px' }
                                           : { format: system.args[3], orientation: 'portrait', margin: '1cm' };
    } else if (system.args.length > 3 && system.args[3].substr(-2) === "px") {
        size = system.args[3].split('*');
        if (size.length === 2) {
            pageWidth = parseInt(size[0], 10);
            pageHeight = parseInt(size[1], 10);
            page.viewportSize = { width: pageWidth, height: pageHeight };
            page.clipRect = { top: 0, left: 0, width: pageWidth, height: pageHeight };
        } else {
            console.log("size:", system.args[3]);
            pageWidth = parseInt(system.args[3], 10);
            pageHeight = parseInt(pageWidth * 3/4, 10); // it's as good an assumption as any
            console.log ("pageHeight:",pageHeight);
            page.viewportSize = { width: pageWidth, height: pageHeight };
        }
    }
    if (system.args.length > 4) {
        page.zoomFactor = system.args[4];
    }
    page.open(address, function (status) {
        if (status !== 'success') {
            console.log('Unable to load the address!');
            phantom.exit(1);
        } else {
            window.setTimeout(function () {
                page.render(output);
                phantom.exit();
            }, 60000);
        }
    });
}

Open in new window


What do you think? Why am I getting the error "phantomjs: not found
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Most Valuable Expert 2017
Distinguished Expert 2018

Commented:
Are you sure phantomjs is not a folder.

Try ls -al in the command window to see what is displayed - if it is a folder then I suspect what you are looking for needs to be called with the folder name or from within the folder.
Bruce GustPHP Developer

Author

Commented:
Here's what I've got after doing ls -al

another screenshot
Most Valuable Expert 2017
Distinguished Expert 2018

Commented:
And if you do
./phantomjs
Ensure you’re charging the right price for your IT

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden using our free interactive tool and use it to determine the right price for your IT services. Start calculating Now!

Bruce GustPHP Developer

Author

Commented:
I did this:

$ ./phantomjs

...and I got phantomjs?

Is that right?
Most Valuable Expert 2017
Distinguished Expert 2018
Commented:
I don't know - not familiar with phantomjs but if you did not get the file not found then it appears to have run.

Try your command line again like this (I have no way to test so please check spelling before running it)

./phantomjs rasterize.js http://ariya.github.io/svg/tiger.svg tiger.png
Bruce GustPHP Developer

Author

Commented:
Julian, that did it!

Why?

If I start off with "cd /var/www/html/phantomjs" does that not put my "process space" within that directory? Why would I have to reference a file (phantomjs) as though it were one directory up from where I appear to be?
Dave BaldwinFixer of Problems
Most Valuable Expert 2014
Commented:
Many Linux versions do not allow you to execute a file directly in a directory.  Instead of 'phantomjs', you must use'./phantomjs'.  It's some kind of security 'feature'.
Bruce GustPHP Developer

Author

Commented:
Thank you guys!

I have another question that's related to this, but I didn't want to wear out my welcome and allow this question to morph into two.

Here's the other question: http://www.experts-exchange.com/questions/28915371/Why-does-this-PhantomJS-script-not-seem-to-work.html


Thanks for your time!

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial