所见即所得编辑器在 PhantomJS 中不起作用

WYSIWYG Redactor not working in PhantomJS

我正在尝试使用 Codeception 和 PhantomJS 测试我的网页,除了一件烦人的事情外,一切都很好。 PhantomJS 未加载 WYSIWYG Redactor,所有其他 javascript 根本未执行。我试图通过创建一个只有 Redactor 的非常简单的网页来隔离问题:

<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; 来修复 redactor,但是有 3-4 个这样的错误,总是有 undefined 问题。当我修复所有这些问题时,我得到的网页只有文本区域,但没有所见即所得。在浏览器中它呈现良好(FF,Chrome,Opera,...),但在 PhantomJS 中它有问题。

我做错了什么?大家遇到过同样的问题吗?

我在 PhantomJS 1.9.7 版中遇到了完全相同的问题。

升级到 2.0.0 修复了它。我使用自制软件:

brew update
brew upgrade phantomjs