Урок 08. Summary session 4
⚡ Кратко: Summary session 4
Summary session 4 — повторение ключевых тем урока 07: ожидания в Selenium, WebDriverWait + EC, AJAX, взаимодействие с элементами.
- Три вида ожидания:
implicitly_wait(глобальное),WebDriverWait + EC(явное, рекомендуется),time.sleep(антипаттерн). - Лучший выбор:
WebDriverWait(driver, 10).until(EC.element_to_be_clickable(...)) - Ключевые EC:
presence_of_element_located,visibility_of_element_located,element_to_be_clickable,text_to_be_present_in_element,url_contains - AJAX: данные загружаются без перезагрузки страницы — нужны явные ожидания конкретного состояния элемента.
send_keys()— ввод текста;clear()— очистка поля;click()— клик по элементу.
Топ-3 ошибки: 1) Смешивать implicitly_wait и WebDriverWait — непредсказуемые задержки. 2) Использовать time.sleep вместо EC — медленно и ненадёжно. 3) Путать presence (в DOM) и visibility (виден пользователю).
📖 О чём этот урок
Это урок-повторение блока «Расширенные практики Selenium». Мы закрепляем всё, что изучали в уроке 07: три вида ожидания, таблицу сравнения, все Expected Conditions, работу с AJAX-страницами и базовые взаимодействия с элементами через send_keys, clear, click.
Что повторим
- Зачем нужны ожидания в Selenium и чем они отличаются
- Неявные ожидания (
implicitly_wait): плюсы, минусы, когда применять - Явные ожидания (
WebDriverWait + EC): синтаксис, все ключевые условия - Почему
time.sleep()— антипаттерн - Таблица сравнения трёх методов ожидания
- Что такое AJAX и почему он требует явных ожиданий
- Разбор задач из лекции: load delay, OrangeHRM login, slow calculator, data-types form
- Методы взаимодействия с элементами:
send_keys(),clear(),click()
📚 Что повторить перед изучением
- ← Урок 07: Расширенные практики Selenium — ожидания и EC
- Фикстуры pytest:
@pytest.fixture,yield - Стратегии поиска элементов:
By.ID,By.CSS_SELECTOR,By.XPATH - Основы AJAX: асинхронная загрузка данных без перезагрузки страницы
🎯 Что изучать дальше
- → Урок 09: Расширенные практики Selenium (часть 2)
- ActionChains: hover, drag-and-drop, double_click
- Работа с Select (выпадающие списки), чекбоксами, radio-button
- Фреймы (iframe) и работа с несколькими окнами браузера