Урок 10. Summary session 5

📁 Блок: Selenium ⏱️ Время изучения: ~30 мин 🎯 Сложность: Средняя
#summary #alert #window_handles #ActionChains #drag_and_drop #iframe #file-upload #повторение

⚡ Кратко: Summary session 5

Summary session 5 — повторение ключевых тем урока 09: Alert-диалоги, переключение вкладок/окон, ActionChains (hover, drag&drop), iframe, загрузка файлов.

  • Alert: driver.switch_to.alert.accept() / .dismiss() / .text / .send_keys()
  • Вкладки: driver.window_handlesdriver.switch_to.window(handle)driver.close()
  • ActionChains: ActionChains(driver).move_to_element(el).perform() — hover; .drag_and_drop(src, tgt).perform() — перетаскивание
  • iframe: driver.switch_to.frame(el) → работа внутри → driver.switch_to.default_content()
  • Загрузка файла: input[type=file].send_keys(abs_path)

Топ-3 ошибки: 1) Обращение к alert без switch_to.alertNoAlertPresentException. 2) Забыл switch_to.default_content() после iframe — NoSuchElementException. 3) time.sleep() после drag&drop вместо явного ожидания.

📖 О чём этот урок

Это урок-повторение блока «Расширенные практики Selenium (часть 2)». Закрепляем всё, что изучали в уроке 09: Alert-диалоги, переключение между вкладками и окнами браузера, ActionChains для сложных взаимодействий мышью, работу с iframe-фреймами и загрузку файлов через input[type=file].

В этом уроке также разобраны решения домашних заданий из лекции: тест iframe на bonigarcia.dev и drag&drop на globalsqa.com.

Что повторим

  • Alert: типы диалогов, методы работы, почему find_element не видит Alert
  • Вкладки и окна: window_handles, switch_to.window(), открытие и закрытие
  • ActionChains: наведение (hover), двойной клик, перетаскивание (drag&drop)
  • iframe: переключение, работа внутри, возврат в основной контекст
  • Загрузка файла: send_keys(path) на <input type="file">
  • Разбор ДЗ: iframe-тест и drag&drop с проверкой количества элементов

📚 Что повторить перед изучением

🎯 Что изучать дальше

  • → Урок 11: Page Object Model — паттерн POM
  • Параметризация тестов: @pytest.mark.parametrize
  • Скриншоты при ошибках: driver.save_screenshot()
  • Обработка исключений Selenium в тестах: try/except NoAlertPresentException