13/09/2026

ЗОНА 3. «Лабиринт Selenium»

ЗОНА 3. «Лабиринт Selenium» (Уровень 5–6)

~14–21 день | Макс. XP: 2000

📌 Глава 3.1 — Основы Selenium WebDriver (500 XP)

  • Шаг 127. Подключи Selenium WebDriver + WebDriverManager через Maven (20 XP)
  • Шаг 128. Запусти Chrome, открой google.com, закрой (15 XP)
  • Шаг 129. Изучи ChromeOptions: headless, window-size, disable-notifications (20 XP)
  • Шаг 130. Изучи локаторы: id, name, className, tagName, linkText, partialLinkText (30 XP)
  • Шаг 131. Изучи XPath: абсолютный, относительный, по атрибуту, по тексту, contains(), starts-with() (40 XP)
  • Шаг 132. Изучи CSS Selectors: .class, #id, [attr=value], >, +, ~ (35 XP)
  • Шаг 133. Потренируйся: найди 20 элементов на the-internet.herokuapp.com разными локаторами (40 XP)
  • Шаг 134. Разберись: XPath vs CSS — когда что лучше (20 XP)
  • Шаг 135. Изучи findElement vs findElements (15 XP)
  • Шаг 136. Изучи действия: click(), sendKeys(), clear(), getText(), getAttribute() (25 XP)
  • Шаг 137. Изучи Select class: selectByValue, selectByIndex, selectByVisibleText (20 XP)
  • Шаг 138. Изучи navigate(): to(), back(), forward(), refresh() (15 XP)
  • Шаг 139. Изучи работу с Alert: accept(), dismiss(), getText(), sendKeys() (20 XP)
  • Шаг 140. Изучи переключение окон/вкладок: getWindowHandles() (25 XP)
  • Шаг 141. Изучи iframe: switchTo().frame(), defaultContent() (25 XP)
  • Шаг 142. Изучи JavaScriptExecutor: executeScript("arguments[0].click()", el) (25 XP)
  • Шаг 143. Изучи скролл, hover, drag-and-drop через Actions class (30 XP)
  • Шаг 144. Изучи загрузку файлов: sendKeys(filePath) на <input type="file"> (15 XP)
  • Шаг 145. Изучи скриншоты: TakesScreenshot + FileUtils.copyFile() (15 XP)

📌 Глава 3.2 — Ожидания (Waits) (250 XP) 🔥

  • Шаг 146. Разберись: Thread.sleep() — почему это зло (15 XP)
  • Шаг 147. Изучи Implicit Wait — как работает, минусы (20 XP)
  • Шаг 148. Изучи Explicit Wait + WebDriverWait + ExpectedConditions (35 XP)
  • Шаг 149. Напиши 5 разных ExpectedConditions: visibilityOf, clickable, presenceOf, textToBe, invisibilityOf (35 XP)
  • Шаг 150. Изучи FluentWait: pollingEvery, ignoring (25 XP)
  • Шаг 151. Напиши кастомное условие ожидания (например, «цвет элемента стал зелёным») (30 XP)
  • Шаг 152. Разберись: StaleElementReferenceException — почему и как лечить (30 XP)
  • Шаг 153. Разберись: NoSuchElementException vs TimeoutException (20 XP)
  • Шаг 154. Напиши обёртку-метод waitForElement(By, int timeout) (25 XP)
  • Шаг 155. Ответь вслух: «Какой wait вы используете в проекте и почему?» (15 XP)

📌 Глава 3.3 — Паттерны проектирования (400 XP) 🔥

  • Шаг 156. Изучи Page Object Model (POM): концепция, зачем (30 XP)
  • Шаг 157. Создай LoginPage с полями и методами enterLogin(), enterPassword(), clickSubmit() (35 XP)
  • Шаг 158. Создай DashboardPage с isDisplayed(), getUserName() (25 XP)
  • Шаг 159. Напиши тест, использующий оба Page Object (30 XP)
  • Шаг 160. Изучи Page Factory + @FindBy (25 XP)
  • Шаг 161. Разберись: Page Factory vs обычный POM — плюсы/минусы (20 XP)
  • Шаг 162. Изучи Singleton для WebDriver (DriverManager) (25 XP)
  • Шаг 163. Изучи Factory паттерн для создания браузеров (Chrome, Firefox, Edge) (25 XP)
  • Шаг 164. Изучи Builder паттерн для тестовых данных (20 XP)
  • Шаг 165. Изучи Fluent Interface (цепочки вызовов в Page Object) (20 XP)
  • Шаг 166. Изучи Strategy паттерн для разных окружений (dev/stage/prod) (20 XP)
  • Шаг 167. Изучи Decorator для логирования действий (20 XP)
  • Шаг 168. Настрой BaseTest класс с @BeforeEach (драйвер) и @AfterEach (quit) (25 XP)
  • Шаг 169. Настрой чтение конфигов из application.properties / .yaml (20 XP)
  • Шаг 170. Настрой параллельный запуск тестов (JUnit 5 + Maven Surefire) (20 XP)

📌 Глава 3.4 — Selenide (бонус, 200 XP)

  • Шаг 171. Подключи Selenide, перепиши 3 теста с Selenium на Selenide (40 XP)
  • Шаг 172. Изучи (),(),$(), .shouldBe(), .shouldHave() (30 XP)
  • Шаг 173. Изучи Configuration: browser, timeout, baseUrl, screenshots (25 XP)
  • Шаг 174. Разберись: Selenide vs Selenium — когда что выбрать (25 XP)
  • Шаг 175. Изучи SelenideElement conditions: visible, text, cssClass, attribute (30 XP)
  • Шаг 176. Изучи CollectionCondition: size, texts, exactTexts (25 XP)
  • Шаг 177. Напиши 5 тестов на Selenide для интернет-магазина (25 XP)

📌 Глава 3.5 — Allure Reports (150 XP)

  • Шаг 178. Подключи Allure + JUnit 5 через Maven (20 XP)
  • Шаг 179. Добавь @Epic, @Feature, @Story, @Severity (25 XP)
  • Шаг 180. Добавь @Step, @Attachment (скриншот при падении) (25 XP)
  • Шаг 181. Добавь @Description, @Link, @Issue (15 XP)
  • Шаг 182. Сгенерируй и открой Allure-отчёт allure serve (20 XP)
  • Шаг 183. Настрой скриншоты при падении через TestWatcher / Extension (25 XP)
  • Шаг 184. Настрой историю запусков (history-trend) (20 XP)

👹 БОСС ЗОНЫ 3: «Селениум-Гидра»

  • Шаг 185. Напиши полноценный фреймворк с нуля: POM + Waits + Allure + Config + BaseTest
  • Шаг 186. Пройди мок-собеседование по Selenium (60 мин)
  • Шаг 187. Набери ≥ 80% → Босс повержен!

🎖️ Ачивка: «Архитектор фреймворка» — POM + Allure + Config
🎖️ Ачивка: «Повелитель ожиданий» — ни одного Thread.sleep()