CasperJS

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

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

определение и порядок итераций браузера

заполнение и отправка форм

клик и переход по ссылкам

создание скриншотов страницы и ее части

удаленное тестирование DOM

логирование событий

загрузка ресурсов и подключение библиотек

написание функциональных тестов и сохранение в формате JUnit XML

Допиливание веб контента

Документация

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

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/