"""Модуль dropdown_list_element содержит класс для работы с выпадающими списками. Класс DropdownList наследует базовый функционал BaseElement и добавляет методы для взаимодействия с выпадающими списками на странице. """ from tools.logger import get_logger from elements.base_element import BaseElement logger = get_logger("DROPDOWN_LIST") class DropdownList(BaseElement): """Класс для работы с выпадающими списками. Наследует функциональность BaseElement и добавляет специфичные методы для выбора и проверки элементов списка. """ @property def type_of(self) -> str: """Возвращает тип элемента ('выпадающий список'). Returns: str: Тип элемента - 'выпадающий список'. """ return "dropdown list" # Действия: def click_item_with_text(self, text: str) -> None: """Выбирает элемент списка по указанному тексту. Args: text (str): Текст элемента для выбора. """ logger.info(f'Selecting item with text "{text}" from dropdown "{self.name}"') 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: Если элемент отсутствует или недоступен. """ logger.info(f'Checking item with text "{text}" in dropdown "{self.name}"') 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"