{{tag>node framework javascript phantomjs crawler}}

====== CasperJS ======

{{:node:casperjs-logo.png? |}}

http://docs.casperjs.org/\\
https://github.com/n1k0/casperjs

CasperJS – вспомогательный инструмент написанный на JavaScript как обертка PhantomJS. 
На официальном сайте перечислены следующие основные возможности:

  * определение и порядок итераций браузера
  * заполнение и отправка форм
  * клик и переход по ссылкам
  * создание скриншотов страницы и ее части
  * удаленное тестирование DOM
  * логирование событий
  * загрузка ресурсов и подключение библиотек
  * написание функциональных тестов и сохранение в формате JUnit XML
  * Допиливание веб контента


===== Установка =====

<code bash>
$ npm install phantomjs casperjs
</code>
===== Документация =====

==== Функции ожидания ====

  * wait() – пауза на заданный промежуток времени, и при необходимости 2 параметр калбек-функция по завершению таймера 
  * waitfor() – ожидает, пока функция возвратит True, затем выполняет следующий шаг
  * waitForAlert() – ожидает, пока вызовется предупреждение JavaScript
  * waitForPopup() – ожидает всплытия попуп окна
  * waitForResource() – ожидает загрузки ресурса
  * waitForUrl() – ожидает загрузки указанной страницы (в качестве параметра regexp)
  * waitForSelector() – ожидает пока не загрузится страница содержащая селектор (в качестве параметра CSS3)
  * waitWhileSelector() – 
  * waitForSelectorTextChange() – 
  * waitForText() – ожидает вывода текста на странице
  * waitUntilVisible() – 
  * waitWhileVisible() – 
==== Библиотеки ====

=== PHP Casperjs ===

Полная эмуляция браузера в PHP

  * https://github.com/alwex/php-casperjs
  * https://github.com/DiceHoldingsInc/casperjs-php-driver

===== Статьи =====

  * http://zhigalov.github.io/testable-code-02/

===== Проекты =====

  * http://slimerjs.org/ - https://github.com/laurentj/slimerjs