📝 Задания — Практика ожиданий в Selenium 4

← К оглавлению урока | → Решения

⚡ Задания урока

4 задания из лекции: Load Delay, OrangeHRM Login, Slow Calculator, Form Validation. Все используют WebDriverWait + EC.

Подготовка: создайте папку lesson07/ и файлы тестов. Убедитесь, что установлены: pip install selenium webdriver-manager pytest.

Задание 1. Ожидание появления кнопки с задержкой

Тестируемый сайт: uitestingplayground.com/loaddelay

На странице присутствует кнопка "Button Appearing After Delay", которая появляется с задержкой после загрузки страницы.

Шаги теста:

  1. Перейти на страницу uitestingplayground.com/loaddelay
  2. Дождаться появления кнопки "Button Appearing After Delay"
  3. Убедиться, что кнопка действительно появилась (is_displayed())

Требования:

  • Файл: test_load_delay.py
  • Использовать WebDriverWait + EC.presence_of_element_located
  • Таймаут: 15 секунд
  • Локатор: XPath по тексту кнопки
Подсказка: какой EC использовать?

Кнопка просто должна появиться в DOM. Используйте EC.presence_of_element_located с XPath: //button[text()='Button Appearing After Delay']

Задание 2. Авторизация в OrangeHRM

Тестируемый сайт: opensource-demo.orangehrmlive.com

Шаги теста:

  1. Открыть сайт OrangeHRM
  2. Ввести "Admin" в поле Username
  3. Ввести "admin123" в поле Password
  4. Нажать кнопку Login
  5. Проверить, что авторизация прошла успешно

Реализуйте два варианта проверки:

  • Вариант А: дождаться появления текста "Dashboard" в теге h6
  • Вариант Б: дождаться, пока URL содержит подстроку "dashboard"

Требования:

  • Файл: test_orangehrm.py
  • Использовать WebDriverWait + EC
  • Таймаут: 10 секунд

Задание 3. Автоматизация калькулятора с задержкой

Тестируемый сайт: bonigarcia.dev/selenium-webdriver-java/slow-calculator.html

Шаги теста:

  1. Открыть страницу Slow Calculator
  2. В поле ввода по локатору #delay ввести значение 45
  3. Нажать на кнопки (в указанном порядке): 7, +, 8, =
  4. Проверить (assert), что в окне отображается результат 15 (через 45 секунд)

Требования:

  • Файл: test_calc.py
  • Использовать EC.text_to_be_present_in_element с CSS-селектором .screen
  • Таймаут: 50 секунд (задержка 45 сек + запас)
  • Не использовать time.sleep
Подсказка: как найти кнопки калькулятора?

Кнопки — элементы span с текстом. XPath: //span[text()='7'], //span[text()='+'] и т.д.

Задание 4. Проверка валидации формы

Тестируемый сайт: bonigarcia.dev/selenium-webdriver-java/data-types.html

Данные для ввода:

ПолеЗначение
First nameHans
Last nameSchmidt
AddressBerliner Straße, 55-3
Emailtest@itch.de
Phone number+4917623456789
Zip code(оставить пустым)
CityBerlin
CountryDeutschland
Job positionQA
CompanyITCH

Шаги теста:

  1. Перейти на страницу Data Types Form
  2. Заполнить форму указанными данными (Zip code — пустым)
  3. Нажать кнопку Submit
  4. Проверить, что поле Zip code подсвечено красным (класс is-invalid)
  5. Проверить, что остальные поля подсвечены зелёным (класс is-valid)

Требования:

  • Файл: test_form_validation.py
  • Использовать EC.presence_of_element_located с CSS-селектором вида input[name='zip-code'].is-invalid
  • Использовать цикл для проверки всех валидных полей

Решения ко всем заданиям — на странице Решения.