📝 Задания — Практика ожиданий в 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", которая появляется с задержкой после загрузки страницы.
Шаги теста:
- Перейти на страницу
uitestingplayground.com/loaddelay - Дождаться появления кнопки "Button Appearing After Delay"
- Убедиться, что кнопка действительно появилась (
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
Шаги теста:
- Открыть сайт OrangeHRM
- Ввести "Admin" в поле Username
- Ввести "admin123" в поле Password
- Нажать кнопку Login
- Проверить, что авторизация прошла успешно
Реализуйте два варианта проверки:
- Вариант А: дождаться появления текста "Dashboard" в теге
h6 - Вариант Б: дождаться, пока URL содержит подстроку "dashboard"
Требования:
- Файл:
test_orangehrm.py - Использовать
WebDriverWait + EC - Таймаут: 10 секунд
Задание 3. Автоматизация калькулятора с задержкой
Тестируемый сайт: bonigarcia.dev/selenium-webdriver-java/slow-calculator.html
Шаги теста:
- Открыть страницу Slow Calculator
- В поле ввода по локатору
#delayввести значение 45 - Нажать на кнопки (в указанном порядке): 7, +, 8, =
- Проверить (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 name | Hans |
| Last name | Schmidt |
| Address | Berliner Straße, 55-3 |
| test@itch.de | |
| Phone number | +4917623456789 |
| Zip code | (оставить пустым) |
| City | Berlin |
| Country | Deutschland |
| Job position | QA |
| Company | ITCH |
Шаги теста:
- Перейти на страницу Data Types Form
- Заполнить форму указанными данными (Zip code — пустым)
- Нажать кнопку Submit
- Проверить, что поле Zip code подсвечено красным (класс
is-invalid) - Проверить, что остальные поля подсвечены зелёным (класс
is-valid)
Требования:
- Файл:
test_form_validation.py - Использовать
EC.presence_of_element_locatedс CSS-селектором видаinput[name='zip-code'].is-invalid - Использовать цикл для проверки всех валидных полей
Решения ко всем заданиям — на странице Решения.