Редактор WYSIWYG не работает в PhantomJS

Я пытаюсь протестировать свою веб-страницу с помощью Codeception и PhantomJS, и все работает отлично, кроме одной раздражающей вещи. WYSIWYG Redactor не загружается PhantomJS, а все остальные javascript вообще не выполняются. Я попытался изолировать проблему, создав очень простую веб-страницу, на которой был только Редактор:

<html>
<head>
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript" src="redactor/redactor.js"></script>
    <link rel="stylesheet" type="text/css" media="screen, projection" href="redactor/redactor.css">
    <script>
        $(function()
        {
            $('#redactor').redactor();
        });
    </script>
</head>
<body>
<textarea name="" id="redactor" cols="30" rows="10"></textarea>
</body>
</html>

И затем у меня есть этот простой тестовый скрипт, который я даю PhantomJS:

var page = require('webpage').create();
page.open('http://localhost/redactor/', function(status) {
  console.log("Status: " + status);
  if(status === "success") {
    page.render('example.png');
  }
  phantom.exit();
});

Результатом в example.png должна быть простая веб-страница с загруженным Redactor, но вместо этого я получил ошибку PhantomJS:

TypeError: 'undefined' is not an object (evaluating 'tags.length')
http://localhost/redactor/redactor/redactor.js:6928

Итак, я попытался исправить редактор, поставив if(tags === undefined) return;, но таких ошибок бывает 3-4, всегда с проблемой undefined. Когда я исправил их все, я получил веб-страницу, на которой просто текстовое поле, но не WYSIWYG. В браузере он отображается нормально (FF, Chrome, Opera, ...), но в PhantomJS он глючит.

Что я делаю неправильно? Кто-нибудь из вас столкнулся с такой же проблемой?


person Pirozek    schedule 19.03.2015    source источник
comment
Вы можете попробовать обновиться до PhantomJS 2.   -  person Artjom B.    schedule 19.03.2015


Ответы (1)


У меня была точно такая же проблема с PhantomJS версии 1.9.7.

Обновление до 2.0.0 исправило это. Я использовал Хоумбрю:

brew update
brew upgrade phantomjs
person Joost Baaij    schedule 03.04.2015
comment
Я использую npm, и сейчас нет рабочего пакета PhantomJS2 (два доступны, но ни один не может быть установлен, выдает ошибку), но ручное обновление сработало, поэтому пометка вашего ответа как «ОК» и спасибо! :) - person Pirozek; 07.04.2015