Selenium Webdriver для Java автоматизаторов
  • Introduction
  • Selenium Webdriver. Введение
    • WebDriver. Обзор и принцип работы
    • Основные методы Selenium Webdriver API
    • Типы локаторов
    • Ожидания
    • Пример использования Webdriver API
  • Selenium WebDriver. Сложные вопросы.
    • Локаторы. CSS, XPATH, JQUERY.
    • WebDriver API. Сложные взаимодействия.
    • Контроль за ходом теста. Кастомные ожидания, попапы, алерты, Iframes.
    • DDT подход
  • Page Object Pattern. Архитектура тестового проекта.
    • Использование паттерна Page Object.
    • Альтернативные Page Object подходы.
    • Вспомогательные инструменты.
    • Уровни абстракции. Создание кастомных элементов.
    • Архитектура. Основные элементы.
  • Selenium Grid и "headless" браузеры
    • Использование HtmlUnit драйвера в автотестировании
    • "Headless" тестирование с PhantomJS и SlimerJS
    • Grid. Настройка и использование.
  • Selenium Webdriver. Проблемные моменты
    • Вспомогательные инструменты
    • Basic Authentification Window
    • Загрузка файла
    • Отправление файла (upload)
    • Логгирование в Selenium Webdriver
    • Скриншоты элементов и работа с изображением
  • Selenium Webdriver. Тестирование HTML5 веб приложений
    • Автоматизация Canvas элементов.
    • Автоматизация видео плеера.
    • Работа с web storage.
  • Selenium Webdriver. Расширение инструмента
    • Selenium "обертки" и расширения
    • Thucydides
    • Geb
    • Selenide
    • Репортинг
  • Selenium Webdriver. Тестирование клиентской производительности
    • Navigation timing API
    • Browser Mob Proxy
    • DynaTrace
    • HttpWatch
  • Selenium Webdriver. Behavior-Driven Development.
    • Обзор методологии и инструментов на Java.
    • Cucumber JVM + Selenium Webdriver.
    • JBehave + Selenium Webdriver.
  • Selenium Webdriver. Тестирование на мобильных браузерах
    • Обзор инструментов
    • Установка и настройка Appium. Принципы и основы работы с инструментом
    • Запуск тестов на десктоп и мобильных браузерах
  • Облачные сервисы.
    • Обзор рынка облачных сервисов для тестирования.
    • SauceLabs. Услуги и планы.
    • Настройка тестов для запуска в SauceLabs.
    • Использование Sauce Connect и Travis CI.
  • Continuous Integration
    • Что такое Continuous Integration
    • Распространенные CI-серверы
    • Jenkins - установка и настройка
Powered by GitBook
On this page
  1. Selenium Webdriver. Расширение инструмента

Selenium "обертки" и расширения

PreviousSelenium Webdriver. Расширение инструментаNextThucydides

Last updated 6 years ago

Selenium Webdriver создавался максимально простым и незамысловатым с тем, чтобы поддерживать кроссфплатформенность и кроссбраузерность на эффективном уровне. Это должно означать, что большая часть функционала, которая востребована пользователями, не доступна "из коробки". Такова цена гибкости и простоты использования инструмента.

Взамен Selenium Webdriver предлагает легкость и множество способов расширения инструмента или агрегации в другие инструменты. Конечно, это стало доступно прежде всего, благодаря открытому исходному коду проекта, а также грамотной ООП архитектуре, построенной на интерфейсах и абстрактных классах.

Расширение инструмента подразумевает добавление в него нового, изначально не доступного функционала в зависимости от целей использования этого инструмента. Часто расширению подвергаются основные компоненты: Webdriver, WebElement или By.

Отличным примером расширения Selenium Webdriver является HTML Elements framework от yandex, который предложил сразу несколько идей для расширения Page Object паттерна:*

  • Идея разбиения страницы на блоки - аннотация <code>@Block</code>

  • Выделение разных типов элементов (button, checkbox)

  • Возможность аннотировать методы как степы - аннотация <code>@Step</code> для работы в стиле step-based

Официальный сайт инструмента

Примеры можно найти на

Термин "обертка" (wrapper) означает то, что над Webdriver сделана надстройка и доступ к Webdriver API опосредован полностью, либо частично. В качестве "оберток" для Selenium Webdriver на Java наиболее популярные:

  • Thucydides

  • Geb

  • Selenide

Первый инструмент ориентирован прежде всего на автоматизацию приемочного тестирования, а также на красивые отчеты. Thucydides - это report-based фреймворк, позволяющий строить очень подробные html отчеты со скриншотами, степами и другой информацией о тестах.

Geb использует скриптовый язык Groovy(JVM-based) и ориентирован на быстрое и лаконичное написание тестов.

Selenide похож на Geb, но написан на Java. Этот инструмент, кроме легких и лаконичных тестов, ориентирован также на эффективную работу с AJAX элементами.

http://htmlelements.qatools.ru/
https://github.com/yandex-qatools/htmlelements-examples