casperjs не находит фантомы

Я скачал последнюю версию casperjs (1.03) и phantomjs (1.9.2).

Итак, я взял этот простой скрипт со страницы каспера:

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

и когда я пытаюсь запустить его, я получаю следующую ошибку:

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

Итак, это моя структура каталогов:

phantomjs-1.9.2/ <-- the folder containing phantomjs
phantomjs-1.9.2/casperjs/ <-- a subfolder containting casperjs

Почему это не работает?


person toom    schedule 20.10.2013    source источник


Ответы (7)


Решение на самом деле очень простое. Просто экспортируйте путь, где находится двоичный файл phantomjs. В моем случае это /Users/Tom/Downloads/phantomjs-1.9.2/bin, следовательно

export PATH=$PATH:/Users/Tom/Downloads/phantomjs-1.9.2/bin
person toom    schedule 20.10.2013
comment
Вы также можете установить переменную среды вместо изменения PATH. PHANTOMJS_EXECUTABLE=/Users/Tom/Downloads/phantomjs-1.9.2/bin/phantomjs - person Brian Onn; 20.12.2014
comment
как я могу использовать эту переменную evnriontemtnal? - person ERJAN; 03.01.2016
comment
Вам нужны как PATH, так и PHANTOMJS_EXECUTABLE (как упоминал @Brian), чтобы это работало. - person sandeep talabathula; 22.11.2016

Столкнулся с той же проблемой при глобальной установке casper с npm на osx. Сначала я установил переменную среды PHANTOMJS_EXECUTABLE на путь, по которому были установлены фантомы (обычно это /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

это помогло лишь частично, так как я все еще получаю сообщение об ошибке, например, нет ни файла, ни папки /usr/local/bin/phantomjs, поэтому я только что создал символическую ссылку и указал ее на настоящую двоичную папку с помощью

ln -s /usr/local/lib/node_modules/casperjs/node_modules/phantomjs/lib/phantom/bin/phantomjs /usr/local/bin/phantomjs

надеюсь, это поможет кому-то :)

person Egor Litvinchuk    schedule 01.07.2015
comment
как мне тогда использовать эту переменную? этот PHANTOMJS_EXECTUABLE - как его использовать? - person ERJAN; 03.01.2016
comment
@ERJAN вам просто нужно установить двоичный файл locate phantomjs, а затем установить его в PHANTOMJS_EXECUTABLE в консоли. затем он будет использоваться casper для обнаружения фантома и правильной работы - person Egor Litvinchuk; 05.03.2016
comment
Для людей, пытающихся использовать CasperJS с slimerjs (вместо phantomjs): я заставил его работать, как и выше, установив эквивалентную переменную среды SLIMERJS_EXECUTABLE=/path/to/slimerjs но также Мне пришлось передать --engine=slimerjs в качестве аргумента исполняемому файлу casperjs. - person meetamit; 09.04.2016

Для ОС Х:

brew install casperjs --devel

brew install phantomjs

и это будет работать

person h0x91B    schedule 14.03.2016
comment
Флаг --devel, похоже, не работает, но в остальном это работает на High Sierra. - person matt; 15.12.2017

Если вы получаете эту ошибку в PHP, поместите это выше вашего exec:

<?php
    putenv("PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs");
?>

Где путь /usr/local/bin/phantomjs — это путь к вашей установке phantomjs. Вы можете получить это, например, набрав which phantomjs в терминале.

person digout    schedule 10.06.2018

Решение для Windows

ШАГ 1. Перейдите к переменным среды

Пуск -> Переменные среды -> Переменные среды или Мой компьютер -> Свойства -> Дополнительные параметры системы -> Переменные среды


ШАГ 2. Установите новый ПУТЬ к папке PhantomJS/bin

Выберите PATH (пользователь или система) -> Изменить

Создать -> Обзор -> найти папку BIN в установке PhantomJS на жестком диске Принять


ШАГ 3. Проверьте свою работу

Откройте CMD -> Введите «phantomjs -v»

Вы должны получить номер версии phantomJS в качестве ответа в любой папке вашего дерева.

person lucaste    schedule 10.12.2017

У меня была эта проблема. Пробовал на 2-х разных машинах с Windows.

Удалены все установленные версии npm из папок node_modules и AppData/Roaming....

Удалил фантом и каспер из каталога c:/, где они изначально были установлены.

Скачанный фантом и извлеченный в папку Program Files из https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-windows.zip

Скачанный casper и извлеченный в папку Program Files из https://github.com/casperjs/casperjs/zipball/1.1.0

Установить переменную системной среды C:\Program Files\phantomjs-2.1.1-windows\bin

Установить системную переменную среды C:\Program Files\casperjs-casperjs-b5c59e1\bin

Я НЕ устанавливал PHANTOMJS_EXECUTABLE, как упоминалось в некоторых других сообщениях. Не уверен, будет ли это иметь значение, но 100% работает с вышеуказанными шагами в Windows 10 с Phantom 2.1.1 и casper 1.1.0.

person Pete Herc    schedule 13.11.2018

Столкнулся с той же проблемой после глобальной установки casperjs с npm на osx. Решение на самом деле очень простое. Вы должны включить эти строки в начало вашего скрипта, чтобы соединить casperjs с phantomjs.

phantom.casperPath = "/path_to/casperjs/";
phantom.injectJs(phantom.casperPath + "/bin/bootstrap.js");
person Shaily    schedule 26.07.2019