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