Skip to content

# ConfirmComponent

Модуль компонента окна подтверждения действий.

Содержит класс ConfirmComponent для взаимодействия с окном подтверждения, включая кнопки подтверждения, отмены и закрытия, а также проверки текста.

## `ConfirmComponent`

Bases: `BaseComponent`

Компонент окна подтверждения действий.

Source code in `components\confirm_component.py`

     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
     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
    class ConfirmComponent(BaseComponent):
        """Компонент окна подтверждения действий."""

        def __init__(self, page: Page, cancel_button_text: str, allow_button_text: str):
            """Инициализация компонента.

            Args:
                page: Экземпляр страницы Playwright.
                cancel_button_text: Текст кнопки отмены.
                allow_button_text: Текст кнопки подтверждения.
            """

            super().__init__(page)

            self.title = Text(page, ConfirmLocators.TITLE, "confirm title")
            self.text = Text(page, ConfirmLocators.TEXT, "confirm text")

            self.close_button = Button(page, ConfirmLocators.BUTTON_CLOSE, "confirm close button")
            self.cancel_button = Button(
                page,
                page.get_by_role("button", name=cancel_button_text).first,
                "confirm cancel button"
            )
            self.allow_button = Button(
                page,
                page.get_by_role("button", name=allow_button_text).first,
                "confirm allow button"
            )

        # Действия:
        def click_allow_button(self) -> None:
            """Нажимает кнопку подтверждения действия."""

            self.allow_button.click()

        def click_cancel_button(self) -> None:
            """Нажимает кнопку отмены действия."""

            self.cancel_button.click()

        def click_close_button(self) -> None:
            """Нажимает кнопку закрытия окна подтверждения."""

            self.close_button.click()

        def scroll_window_left(self) -> None:
            """Прокручивает содержимое окна влево."""

            self.scroll_left(ConfirmLocators.CONFIRM)

        def scroll_window_right(self) -> None:
            """Прокручивает содержимое окна вправо."""

            self.scroll_right(ConfirmLocators.CONFIRM)

        # Проверки:
        def check_title(self, title: str, msg: str) -> None:
            """Проверяет текст заголовка окна подтверждения.

            Args:
                title: Ожидаемый текст заголовка.
                msg: Сообщение при ошибке.
            """

            self.title.check_have_text(title, msg)

        def check_text(self, text: str, msg: str) -> None:
            """Проверяет текст сообщения в окне подтверждения.

            Args:
                text: Ожидаемый текст сообщения.
                msg: Сообщение при ошибке.
            """

            self.text.check_have_text(text, msg)

        def check_window_horizontal_scrolling(self) -> bool:
            """Проверяет возможность горизонтальной прокрутки окна."""

            return self.is_scrollable_horizontally(ConfirmLocators.CONFIRM)

        def should_be_cancel_button(self) -> None:
            """Проверяет наличие и видимость кнопки Отмены."""
            self.cancel_button.check_visibility("Cancel button is missing")

        def should_be_allow_button(self) -> None:
            """Проверяет наличие и видимость кнопки Подтверждения."""
            self.allow_button.check_visibility("Allow button is missing")

        def check_cancel_button_text(self, expected_text: str) -> None:
            """Проверяет текст кнопки Отмены."""
            self.cancel_button.check_have_text(expected_text, "Cancel button text doesn't match expected")

        def check_allow_button_text(self, expected_text: str) -> None:
            """Проверяет текст кнопки Подтверждения."""
            self.allow_button.check_have_text(expected_text, "Allow button text doesn't match expected")

### `__init__(page, cancel_button_text, allow_button_text)`

Инициализация компонента.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`page` | `Page` | Экземпляр страницы Playwright. | required
`cancel_button_text` | `str` | Текст кнопки отмены. | required
`allow_button_text` | `str` | Текст кнопки подтверждения. | required

Source code in `components\confirm_component.py`

    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
    def __init__(self, page: Page, cancel_button_text: str, allow_button_text: str):
        """Инициализация компонента.

        Args:
            page: Экземпляр страницы Playwright.
            cancel_button_text: Текст кнопки отмены.
            allow_button_text: Текст кнопки подтверждения.
        """

        super().__init__(page)

        self.title = Text(page, ConfirmLocators.TITLE, "confirm title")
        self.text = Text(page, ConfirmLocators.TEXT, "confirm text")

        self.close_button = Button(page, ConfirmLocators.BUTTON_CLOSE, "confirm close button")
        self.cancel_button = Button(
            page,
            page.get_by_role("button", name=cancel_button_text).first,
            "confirm cancel button"
        )
        self.allow_button = Button(
            page,
            page.get_by_role("button", name=allow_button_text).first,
            "confirm allow button"
        )

### `check_allow_button_text(expected_text)`

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

Source code in `components\confirm_component.py`

    110
    111
    112
    def check_allow_button_text(self, expected_text: str) -> None:
        """Проверяет текст кнопки Подтверждения."""
        self.allow_button.check_have_text(expected_text, "Allow button text doesn't match expected")

### `check_cancel_button_text(expected_text)`

Проверяет текст кнопки Отмены.

Source code in `components\confirm_component.py`

    106
    107
    108
    def check_cancel_button_text(self, expected_text: str) -> None:
        """Проверяет текст кнопки Отмены."""
        self.cancel_button.check_have_text(expected_text, "Cancel button text doesn't match expected")

### `check_text(text, msg)`

Проверяет текст сообщения в окне подтверждения.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`text` | `str` | Ожидаемый текст сообщения. | required
`msg` | `str` | Сообщение при ошибке. | required

Source code in `components\confirm_component.py`

    83
    84
    85
    86
    87
    88
    89
    90
    91
    def check_text(self, text: str, msg: str) -> None:
        """Проверяет текст сообщения в окне подтверждения.

        Args:
            text: Ожидаемый текст сообщения.
            msg: Сообщение при ошибке.
        """

        self.text.check_have_text(text, msg)

### `check_title(title, msg)`

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

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`title` | `str` | Ожидаемый текст заголовка. | required
`msg` | `str` | Сообщение при ошибке. | required

Source code in `components\confirm_component.py`

    73
    74
    75
    76
    77
    78
    79
    80
    81
    def check_title(self, title: str, msg: str) -> None:
        """Проверяет текст заголовка окна подтверждения.

        Args:
            title: Ожидаемый текст заголовка.
            msg: Сообщение при ошибке.
        """

        self.title.check_have_text(title, msg)

### `check_window_horizontal_scrolling()`

Проверяет возможность горизонтальной прокрутки окна.

Source code in `components\confirm_component.py`

    93
    94
    95
    96
    def check_window_horizontal_scrolling(self) -> bool:
        """Проверяет возможность горизонтальной прокрутки окна."""

        return self.is_scrollable_horizontally(ConfirmLocators.CONFIRM)

### `click_allow_button()`

Нажимает кнопку подтверждения действия.

Source code in `components\confirm_component.py`

    47
    48
    49
    50
    def click_allow_button(self) -> None:
        """Нажимает кнопку подтверждения действия."""

        self.allow_button.click()

### `click_cancel_button()`

Нажимает кнопку отмены действия.

Source code in `components\confirm_component.py`

    52
    53
    54
    55
    def click_cancel_button(self) -> None:
        """Нажимает кнопку отмены действия."""

        self.cancel_button.click()

### `click_close_button()`

Нажимает кнопку закрытия окна подтверждения.

Source code in `components\confirm_component.py`

    57
    58
    59
    60
    def click_close_button(self) -> None:
        """Нажимает кнопку закрытия окна подтверждения."""

        self.close_button.click()

### `scroll_window_left()`

Прокручивает содержимое окна влево.

Source code in `components\confirm_component.py`

    62
    63
    64
    65
    def scroll_window_left(self) -> None:
        """Прокручивает содержимое окна влево."""

        self.scroll_left(ConfirmLocators.CONFIRM)

### `scroll_window_right()`

Прокручивает содержимое окна вправо.

Source code in `components\confirm_component.py`

    67
    68
    69
    70
    def scroll_window_right(self) -> None:
        """Прокручивает содержимое окна вправо."""

        self.scroll_right(ConfirmLocators.CONFIRM)

### `should_be_allow_button()`

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

Source code in `components\confirm_component.py`

    102
    103
    104
    def should_be_allow_button(self) -> None:
        """Проверяет наличие и видимость кнопки Подтверждения."""
        self.allow_button.check_visibility("Allow button is missing")

### `should_be_cancel_button()`

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

Source code in `components\confirm_component.py`

     98
     99
    100
    def should_be_cancel_button(self) -> None:
        """Проверяет наличие и видимость кнопки Отмены."""
        self.cancel_button.check_visibility("Cancel button is missing")