# ToolbarComponent - Документация тестов eNODE-Мониторинг

Skip to content

# ToolbarComponent

Модуль компонента тулбара (панели инструментов).

Содержит класс ToolbarComponent для работы с элементами тулбара: - Управление кнопками и их подсказками - Проверка видимости элементов - Взаимодействие с панелью инструментов

## `ToolbarComponent`

Bases: `BaseComponent`

Компонент тулбара. Предоставляет методы для работы с панелью инструментов.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`page` | `Page` | Экземпляр страницы Playwright | required
`title` | `str` | Заголовок тулбара | required

Source code in `components\toolbar_component.py`

     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
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162

    class ToolbarComponent(BaseComponent):

        """Компонент тулбара. Предоставляет методы для работы с панелью инструментов.

        Args:
            page (Page): Экземпляр страницы Playwright
            title (str): Заголовок тулбара
        """

        def __init__(self, page: Page, title: str):
            """Инициализирует компонент тулбара с указанным заголовком."""

            super().__init__(page)
            self.title = title
            self.buttons = []

        def add_title(self, title: str) -> None:
            """Устанавливает новый заголовок тулбара.

            Args:
                title (str): Новый заголовок
            """

            self.title = title

        def add_button(self, locator: Locator, name: str) -> None:
            """Добавляет кнопку в тулбар.

            Args:
                locator (Locator): Локатор кнопки
                name (str): Уникальное имя кнопки
            """

            self.buttons.append(TooltipButton(self.page, locator, name))

        def get_button_by_name(self, name: str) -> TooltipButton | None:
            """Возвращает кнопку по имени.

            Args:
                name (str): Имя кнопки

            Returns:
                TooltipButton | None: Найденная кнопка или None
            """

            for button in self.buttons:
                if button.name == name:
                    return button
            return None

        def click_button(self, name: str) -> None:
            """Кликает по кнопке тулбара.

            Args:
                name (str): Имя кнопки

            Raises:
                AssertionError: Если кнопка не найдена
            """

            button = self.get_button_by_name(name)
            if button is None:
                raise AssertionError(f"Unsupported button name {name}")
            button.click()

        def is_button_present(self, name: str) -> bool:
            """Проверяет наличие кнопки.

            Args:
                name (str): Имя кнопки

            Returns:
                bool: True если кнопка присутствует

            Raises:
                AssertionError: Если имя кнопки не поддерживается
            """

            button = self.get_button_by_name(name)
            if button is None:
                raise AssertionError(f"Unsupported button name {name}")
            return button.is_present(timeout=1000)  # Ожидание 1 секунда

        def is_button_not_present(self, name: str) -> bool:
            """Проверяет отсутствие кнопки.

            Args:
                name (str): Имя кнопки

            Returns:
                bool: True если кнопка отсутствует

            Raises:
                AssertionError: Если имя кнопки не поддерживается
            """

            button = self.get_button_by_name(name)
            if button is None:
                raise AssertionError(f"Unsupported button name {name}")
            return button.is_not_present(timeout=1000)  # Ожидание 1 секунда

        def check_toolbar_presence(self, message: str) -> None:
            """Проверяет видимость тулбара.

            Args:
                message (str): Сообщение об ошибке если тулбар не виден
            """

            locator = self.get_locator(ToolbarLocators.TITLE).filter(has_text=self.title)
            expect(locator).to_be_visible(), message

        def check_button_presence(self, name: str) -> None:
            """Проверяет наличие и видимость кнопки.

            Args:
                name (str): Имя кнопки

            Raises:
                AssertionError: Если кнопка не найдена или не видна
            """

            button = self.get_button_by_name(name)
            if button is None:
                raise AssertionError(f"Unsupported button name {name}")
            button.check_presence(f"Button with name {name} is missing")

        def check_button_tooltip(self, name: str, tooltip: str) -> None:
            """Проверяет текст подсказки кнопки.

            Args:
                name (str): Имя кнопки
                tooltip (str): Ожидаемый текст подсказки

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

            button = self.get_button_by_name(name)
            if button is None:
                raise AssertionError(f"Unsupported button name {name}")
            button.check_tooltip_with_text(ToolbarLocators.TOOLTIP, tooltip)

### `__init__(page, title)`

Инициализирует компонент тулбара с указанным заголовком.

Source code in `components\toolbar_component.py`

    31
    32
    33
    34
    35
    36

    def __init__(self, page: Page, title: str):
        """Инициализирует компонент тулбара с указанным заголовком."""

        super().__init__(page)
        self.title = title
        self.buttons = []

### `add_button(locator, name)`

Добавляет кнопку в тулбар.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`locator` | `Locator` | Локатор кнопки | required
`name` | `str` | Уникальное имя кнопки | required

Source code in `components\toolbar_component.py`

    47
    48
    49
    50
    51
    52
    53
    54
    55

    def add_button(self, locator: Locator, name: str) -> None:
        """Добавляет кнопку в тулбар.

        Args:
            locator (Locator): Локатор кнопки
            name (str): Уникальное имя кнопки
        """

        self.buttons.append(TooltipButton(self.page, locator, name))

### `add_title(title)`

Устанавливает новый заголовок тулбара.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`title` | `str` | Новый заголовок | required

Source code in `components\toolbar_component.py`

    38
    39
    40
    41
    42
    43
    44
    45

    def add_title(self, title: str) -> None:
        """Устанавливает новый заголовок тулбара.

        Args:
            title (str): Новый заголовок
        """

        self.title = title

### `check_button_presence(name)`

Проверяет наличие и видимость кнопки.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`name` | `str` | Имя кнопки | required

Raises:

Type | Description
--- | ---
`AssertionError` | Если кнопка не найдена или не видна

Source code in `components\toolbar_component.py`

    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146

    def check_button_presence(self, name: str) -> None:
        """Проверяет наличие и видимость кнопки.

        Args:
            name (str): Имя кнопки

        Raises:
            AssertionError: Если кнопка не найдена или не видна
        """

        button = self.get_button_by_name(name)
        if button is None:
            raise AssertionError(f"Unsupported button name {name}")
        button.check_presence(f"Button with name {name} is missing")

### `check_button_tooltip(name, tooltip)`

Проверяет текст подсказки кнопки.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`name` | `str` | Имя кнопки | required
`tooltip` | `str` | Ожидаемый текст подсказки | required

Raises:

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

Source code in `components\toolbar_component.py`

    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162

    def check_button_tooltip(self, name: str, tooltip: str) -> None:
        """Проверяет текст подсказки кнопки.

        Args:
            name (str): Имя кнопки
            tooltip (str): Ожидаемый текст подсказки

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

        button = self.get_button_by_name(name)
        if button is None:
            raise AssertionError(f"Unsupported button name {name}")
        button.check_tooltip_with_text(ToolbarLocators.TOOLTIP, tooltip)

### `check_toolbar_presence(message)`

Проверяет видимость тулбара.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`message` | `str` | Сообщение об ошибке если тулбар не виден | required

Source code in `components\toolbar_component.py`

    123
    124
    125
    126
    127
    128
    129
    130
    131

    def check_toolbar_presence(self, message: str) -> None:
        """Проверяет видимость тулбара.

        Args:
            message (str): Сообщение об ошибке если тулбар не виден
        """

        locator = self.get_locator(ToolbarLocators.TITLE).filter(has_text=self.title)
        expect(locator).to_be_visible(), message

### `click_button(name)`

Кликает по кнопке тулбара.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`name` | `str` | Имя кнопки | required

Raises:

Type | Description
--- | ---
`AssertionError` | Если кнопка не найдена

Source code in `components\toolbar_component.py`

    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85

    def click_button(self, name: str) -> None:
        """Кликает по кнопке тулбара.

        Args:
            name (str): Имя кнопки

        Raises:
            AssertionError: Если кнопка не найдена
        """

        button = self.get_button_by_name(name)
        if button is None:
            raise AssertionError(f"Unsupported button name {name}")
        button.click()

### `get_button_by_name(name)`

Возвращает кнопку по имени.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`name` | `str` | Имя кнопки | required

Returns:

Type | Description
--- | ---
`TooltipButton | None` | TooltipButton | None: Найденная кнопка или None

Source code in `components\toolbar_component.py`

    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70

    def get_button_by_name(self, name: str) -> TooltipButton | None:
        """Возвращает кнопку по имени.

        Args:
            name (str): Имя кнопки

        Returns:
            TooltipButton | None: Найденная кнопка или None
        """

        for button in self.buttons:
            if button.name == name:
                return button
        return None

### `is_button_not_present(name)`

Проверяет отсутствие кнопки.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`name` | `str` | Имя кнопки | required

Returns:

Name | Type | Description
--- | --- | ---
`bool` | `bool` | True если кнопка отсутствует

Raises:

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

Source code in `components\toolbar_component.py`

    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121

    def is_button_not_present(self, name: str) -> bool:
        """Проверяет отсутствие кнопки.

        Args:
            name (str): Имя кнопки

        Returns:
            bool: True если кнопка отсутствует

        Raises:
            AssertionError: Если имя кнопки не поддерживается
        """

        button = self.get_button_by_name(name)
        if button is None:
            raise AssertionError(f"Unsupported button name {name}")
        return button.is_not_present(timeout=1000)  # Ожидание 1 секунда

### `is_button_present(name)`

Проверяет наличие кнопки.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`name` | `str` | Имя кнопки | required

Returns:

Name | Type | Description
--- | --- | ---
`bool` | `bool` | True если кнопка присутствует

Raises:

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

Source code in `components\toolbar_component.py`

     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103

    def is_button_present(self, name: str) -> bool:
        """Проверяет наличие кнопки.

        Args:
            name (str): Имя кнопки

        Returns:
            bool: True если кнопка присутствует

        Raises:
            AssertionError: Если имя кнопки не поддерживается
        """

        button = self.get_button_by_name(name)
        if button is None:
            raise AssertionError(f"Unsupported button name {name}")
        return button.is_present(timeout=1000)  # Ожидание 1 секунда