Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 1

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

export PATH=$PATH:/Users/Tom/Downloads/phantomjs-1.9.2/bin

Ответ 2

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

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

Ответ 3

Для OS X:

brew install casperjs --devel

brew install phantomjs

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

Ответ 4

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

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

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

Ответ 5

Решение для Windows

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

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


ШАГ 2 - установите новую PATH в папку PhantomJS/bin

Выберите PATH (Пользователь или Система) → Изменить

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


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

Открыть CMD → Тип "phantomjs -v"

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

Ответ 6

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

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

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

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

Скачанный каспер и распакованный в папку 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

Ответ 7

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

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