"""Модуль tooltip_button_element содержит класс для работы с кнопками с подсказками. Класс TooltipButton наследует базовый функционал BaseElement и добавляет методы для проверки всплывающих подсказок у кнопок. """ from tools.logger import get_logger from elements.base_element import BaseElement logger = get_logger("TOOLTIP_BUTTON") class TooltipButton(BaseElement): """Класс для работы с кнопками, имеющими всплывающие подсказки. Наследует функциональность BaseElement и добавляет методы для взаимодействия с подсказками кнопок. """ @property def type_of(self) -> str: """Возвращает тип элемента ('tooltip_button'). Returns: str: Тип элемента - кнопка с подсказкой. """ return "tooltip_button" def check_tooltip_with_text(self, tooltip_locator: str, expected_text: str) -> None: """Проверяет соответствие текста всплывающей подсказки. Args: tooltip_locator (str): Локатор элемента подсказки. expected_text (str): Ожидаемый текст подсказки. Raises: AssertionError: Если текст подсказки не соответствует ожидаемому. """ # Наведение на элемент для отображения подсказки self.locator.hover() # Получение элемента подсказки tooltip = self.page.locator(tooltip_locator) tooltip.wait_for(state="visible", timeout=5000) self.page.wait_for_timeout(300) # Проверка соответствия текста actual_text = tooltip.text_content().strip() assert actual_text == expected_text, ( f"Текст подсказки не соответствует ожидаемому. " f"Ожидалось: '{expected_text}', получено: '{actual_text}'" )