1. Общая информация
Что такое Selenium
Краткая история развития
Принцип работы Selenium WebDriver
Стандарт W3C WebDriver
Сравнение с конкурентами
Источники информации
2. Первые шаги: пробежимся по верхам
Необходимая инфраструктура
Подготовка инфраструктуры для Java, C#, Python, Ruby, JavaScript
Запуск и останов браузера
Открытие страниц и ожидание загрузки страницы
Поиск элементов на странице
Действия: click и sendKeys
Свойства элементов: getText и getAttribute
3. Запуск браузеров
Исполняемые файлы-посредники
Выбор "правильной" версии браузера
Особенности запуска на разных операционных системах
Capabilities
Cookies, чистый и грязный запуск
Подробнее про каждый браузер (Chrome, Firefox, Internet Explorer, Edge, Safari, другие)
Работа с несколькими браузерами одновременно
WebDriverFactory
4. Поиск элементов
Типы локаторов
Какие локаторы лучше всех?
Отладка локаторов
Надёжные и ненадёжные локаторы
Списки элементов
Поиск внутри элемента
Неявные ожидания
Стратегии ожидания загрузки страницы
Поиск при помощи executeScript
5. Получение свойств элементов
Атрибуты и свойства
Текст
Видимость
Размер и положение
Стили
6. Действия с элементами
Простые
click
sendKeys
clear
submit
Сложные
Наведение мыши
Перетаскивание
Правая кнопка мыши
Управление по координатам
Модификаторы (ctrl, shift)
7. Ожидания (WebDriverWait)
Ожидание появления
Ожидание видимости
Ожидание исчезновения
Ожидание свойств элемента
Ожидание нужного количества элементов
Произвольные условия ожидания
StaleElementReferenceException и борьба с ним
Неудачные попытки как альтернатива ожиданиям
8. Окна и диалоги
Alerts
Uploading files
Downloading files
Окна и вкладки
Фреймы
9. Удалённый запуск
Selenium Server
Selenium Grid
Selenium Grid Extras
Облачные сервисы
10. Протоколирование
EventFiringWebDriver
Доступ к логам браузера
Снятие скриншотов
Запись видео
Запись трафика
11. PageObjects и другие шаблоны проектирования
Откуда “ноги растут” у этого шаблона проектирования?
Разделение зон ответственности в тестах
Различные реализации PageObjects
Альтернативные шаблоны проектирования (PageBocks, Services)
12. Расширения и обёртки
Драйверы (Appium, Winium, Windows Application Driver)
Альтернативные API (Watir, Selenide, FluentSelenium)
BDD и другие альтернативные стили (RobotFramework, Serenity, Capybara, Geb, ScalaTest)