Spliner - это фреймверк на языке Python для тестирования сайтов.
Внимание! Тестируемые сайты могут быть написаны на любом языке программирования с использованием любых технологий!
Тестируемый сайт может находиться где угодно, то есть, данный фреймверк не нужно размещать на самом сайте. Другими словами, для тестирования сайта можно развернуть Splinter в любом месте, ему даже не нужен веб-сервер, а требуется только язык Python.
Как работает Splinter?
Splinter создает объект "виртуальный браузер", в который скармливается URL тестируемой страницы и прописываются тестирующие действия. Можно заполнить поле формы, найти текст на странице, нажать кнопку. Результат каждого действия можно проверить и вывести соответствующее сообщение в консоль.
По-умолчанию, в качестве виртуального браузера используется драйвер "firefox", но можно указать и другие (в настоящий момент поддерживается chrome).
Простой пример
Следующй пример заходит на сайт google.com, заполняет строку поиска фразой "splinter - python acceptance testing for web applications", находит и нажимает кнопку поиска. Далее, если в результатах поиска присутсвует текст "splinter.cobrateam.info" (это официальный сайт Splinter), программа выведет в консоль сообщение что официальный сайт сплинтера найден на гугле:
from splinter import Browser
browser = Browser()
# Переход на гугл
url = "http://www.google.com"
browser.visit(url)
# Заполнение строки поиска
browser.fill('q', 'splinter - python acceptance testing for web applications')
# Поиск кнопки "Найти"
button = browser.find_by_name('btnG')
# Интерактивное нажатие кнопки "Найти"
button.click()
# Если на странице присутсвует текст splinter.cobrateam.info
if browser.is_text_present('splinter.cobrateam.info'):
print "Yes, the official website was found!"
else:
print "No, it wasn't found... We need to improve our SEO techniques"
browser.quit()
Следует обратить внимание, что в коде нет никаких ожиданий загрузки страницы (например после нажатия кнопки "Найти"). Если действие связано с переходом на новую HTML-страницу, фреймверк сам дожидается окончания перехода и продолжает выполнять следуюшие действия.
Компактный синтаксис
Фреймверк Splinter обеспечивает очень компактный синтаксис. Например, чтобы заполнить поле username, которое есть на странице (неважно в какой форме) значением jack, можно написать так:
browser.fill('username', 'jack')
В фреймверке Selenium этот же код выглядел бы так:
elem = browser.find_element.by_name('username')
elem.send_keys('jack')
Соединение действий в последовательность
В вышеприведенном примере для нажатия кнопки выполялось два действия - поиск кнопки и нажатие этой найденной кнопки:
button = browser.find_by_name('btnG')
button.click()
Данные действия можно объединять в одно выражение:
browser.find_by_name('btnG').click()
API Splinter
Splinter - это минимальстичный фреймверк. Его API небольшое и легко изучаемое за один вечер:
http://splinter.cobrateam.info/docs/api/driver-and-element-api.html