52 lines
2.2 KiB
Python
52 lines
2.2 KiB
Python
"""Модуль 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)
|
||
|
||
# Проверка соответствия текста
|
||
actual_text = tooltip.text_content().strip()
|
||
assert actual_text == expected_text, (
|
||
f"Текст подсказки не соответствует ожидаемому. "
|
||
f"Ожидалось: '{expected_text}', получено: '{actual_text}'"
|
||
)
|