"""Модуль dropdown_list_component содержит класс для работы с выпадающими списками. Класс DropdownList наследует базовый функционал BaseComponent и добавляет методы для взаимодействия с выпадающими списками на странице. """ from playwright.sync_api import Page from tools.logger import get_logger from components.base_component import BaseComponent logger = get_logger("DROPDOWN_LIST") class DropdownList(BaseComponent): """Класс для работы с выпадающими списками. Наследует функциональность BaseElement и добавляет специфичные методы для выбора и проверки элементов списка. """ def __init__(self, page: Page): """Инициализирует компонент выпадающего списка. Args: page: Экземпляр страницы Playwright. """ super().__init__(page) # Действия: def click_item_with_text(self, text: str) -> None: """Выбирает элемент списка по указанному тексту. Args: text (str): Текст элемента для выбора. """ self.page.get_by_role("listitem").filter(has_text=text).click() # Проверки: def check_item_with_text(self, text: str) -> None: """Проверяет наличие и доступность элемента списка. Args: text (str): Текст элемента для проверки. Raises: AssertionError: Если элемент отсутствует или недоступен. """ enabled = self.page.get_by_role("listitem").filter(has_text=text).is_enabled() if not enabled: assert False, f"Dropdown list item '{text}' is missing or disabled"