Я пытаюсь протестировать свою веб-страницу с помощью 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 он глючит.
Что я делаю неправильно? Кто-нибудь из вас столкнулся с такой же проблемой?