Ответ 1
Использование безглавых установок при использовании Xvfb в качестве виртуального буфера кадров (на машинах Linux, на которых размещаются узлы сетки). Закончилось использование этого и по умолчанию Firefox.
В настоящее время я пытаюсь создать небольшой набор тестов для CI (Hudson). Я написал сложный script, который динамически вызывает другие скрипты и заполняет данный элемент DIV.
Мои тесты Selenium работают для тривиальных примеров (загрузите www.google.com, найдите q-элемент и т.д.)
Но когда я пытаюсь запустить сложный тест, который работает с Firefox-Driver, в моем экземпляре PhantomJS он сработает. Выполняется segfault.
Мой вопрос: как я могу написать тесты для моего интерфейса JS, который работает на Hudson-Server, который работает (без головы).
Или есть способ отладки, что вызывает segfault?
Использование безглавых установок при использовании Xvfb в качестве виртуального буфера кадров (на машинах Linux, на которых размещаются узлы сетки). Закончилось использование этого и по умолчанию Firefox.
Slimer.js похож на Phantom.js, но использует Gecko, а не Webkit.
Phantom - развивающийся продукт, и лишь относительно недавно он получил возможность интегрироваться с Selenium, так что вы, возможно, столкнулись с ним; вы пытались сообщить об этом разработчикам Phantom?
Альтернативы Phantom:
Их не так много. Zombie - это тот, о котором я знаю, но Phantom - голова и плечи выше любого другого браузера без браузера.
Вы также можете попробовать использовать безглавой виртуальный сервер для запуска любого из обычных веб-браузеров. (это также имело бы преимущество в том, чтобы быть более реальным испытанием, чем Phantom)
Альтернативы селену:
Вы можете использовать Sahi как прямую замену Selenium. Он способен на одни и те же вещи, но работает совсем по-другому. Конечно, ваши тестовые скрипты нужно будет переписать.
Phantom предназначен для сценариев, поэтому вам не нужно вообще использовать инструмент драйвера, такой как Selenium; вы могли бы просто script использовать его напрямую или использовать инструмент CasperJS для написания тестовых скриптов.
jsdom - хорошая альтернатива, теперь она довольно зрелая.
https://github.com/tmpvar/jsdom/
Для тестирования без головы. Я не думаю, что это будет делать скриншоты, подобные phantomjs, так как у него нет вебкита или gekko renderer его чистого JS.
Я нашел это с phantomjs segfaults, и новая версия не будет создана. slimerjs на самом деле не безголовый, и его XULRunner, основанный на том, что FireFox просто упал, он не работает с моим текущим FF.
jsdom довольно круто, он начал работать как синтаксический анализатор XML и теперь имеет полный сетевой сервер и поддержку jQuery.
API - это не то же самое, что и phantomjs.