Skip to content

# TooltipButton

Модуль tooltip_button_element содержит класс для работы с кнопками с подсказками.

Класс TooltipButton наследует базовый функционал BaseElement и добавляет методы для проверки всплывающих подсказок у кнопок.

## `TooltipButton`

Bases: `BaseElement`

Класс для работы с кнопками, имеющими всплывающие подсказки.

Наследует функциональность BaseElement и добавляет методы для взаимодействия с подсказками кнопок.

Source code in `elements\tooltip_button_element.py`

    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    class TooltipButton(BaseElement):
        """Класс для работы с кнопками, имеющими всплывающие подсказки.

        Наследует функциональность BaseElement и добавляет методы
        для взаимодействия с подсказками кнопок.
        """

        @property
        def type_of(self) -> str:
            """Возвращает тип элемента ('tooltip_button').

            Returns:
                str: Тип элемента - кнопка с подсказкой.
            """

            return "tooltip_button"

        # Действия:
        def get_tooltip_text(self) -> str:
            """Возвращает текст всплывающей подсказки.

            Returns:
                str: Текст всплывающей подсказки.

            """

            # Наведение на элемент для отображения подсказки
            self.locator.hover()

            # Получение элемента подсказки
            tooltip = self.page.locator(ButtonLocators.TOOLTIP)

            tooltip.wait_for(state="visible", timeout=5000)

            self.page.wait_for_timeout(300)
            return tooltip.text_content().strip()

        def wait_for_tooltip_to_disappear(self, timeout: int = 5000) -> None:
            """Ожидает исчезновения всех активных всплывающих подсказок."""

            self.page.mouse.click(10, 10)
            tooltip_locator = self.page.locator(".v-tooltip__content.menuable__content__active")

            tooltip_locator.wait_for(state="hidden", timeout=timeout)

        # Проверки:
        def check_tooltip_with_text(self, expected_text: str) -> None:
            """Проверяет соответствие текста всплывающей подсказки.

            Args:
               expected_text (str): Ожидаемый текст подсказки.

            Raises:
                AssertionError: Если текст подсказки не соответствует ожидаемому.
            """

            # Наведение на элемент для отображения подсказки
            self.locator.hover()

            # Получение элемента подсказки
            tooltip = self.page.locator(ButtonLocators.TOOLTIP)

            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}'"
            )

### `type_of` `property`

Возвращает тип элемента ('tooltip_button').

Returns:

Name | Type | Description
--- | --- | ---
`str` | `str` | Тип элемента - кнопка с подсказкой.

### `check_tooltip_with_text(expected_text)`

Проверяет соответствие текста всплывающей подсказки.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`expected_text` | `str` | Ожидаемый текст подсказки. | required

Raises:

Type | Description
--- | ---
`AssertionError` | Если текст подсказки не соответствует ожидаемому.

Source code in `elements\tooltip_button_element.py`

    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    def check_tooltip_with_text(self, expected_text: str) -> None:
        """Проверяет соответствие текста всплывающей подсказки.

        Args:
           expected_text (str): Ожидаемый текст подсказки.

        Raises:
            AssertionError: Если текст подсказки не соответствует ожидаемому.
        """

        # Наведение на элемент для отображения подсказки
        self.locator.hover()

        # Получение элемента подсказки
        tooltip = self.page.locator(ButtonLocators.TOOLTIP)

        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}'"
        )

### `get_tooltip_text()`

Возвращает текст всплывающей подсказки.

Returns:

Name | Type | Description
--- | --- | ---
`str` | `str` | Текст всплывающей подсказки.

Source code in `elements\tooltip_button_element.py`

    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    def get_tooltip_text(self) -> str:
        """Возвращает текст всплывающей подсказки.

        Returns:
            str: Текст всплывающей подсказки.

        """

        # Наведение на элемент для отображения подсказки
        self.locator.hover()

        # Получение элемента подсказки
        tooltip = self.page.locator(ButtonLocators.TOOLTIP)

        tooltip.wait_for(state="visible", timeout=5000)

        self.page.wait_for_timeout(300)
        return tooltip.text_content().strip()

### `wait_for_tooltip_to_disappear(timeout=5000)`

Ожидает исчезновения всех активных всплывающих подсказок.

Source code in `elements\tooltip_button_element.py`

    50
    51
    52
    53
    54
    55
    56
    def wait_for_tooltip_to_disappear(self, timeout: int = 5000) -> None:
        """Ожидает исчезновения всех активных всплывающих подсказок."""

        self.page.mouse.click(10, 10)
        tooltip_locator = self.page.locator(".v-tooltip__content.menuable__content__active")

        tooltip_locator.wait_for(state="hidden", timeout=timeout)