Исходный код components.confirm_component

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

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

from playwright.sync_api import Page
from tools.logger import get_logger
from locators.confirm_locators import ConfirmLocators
from elements.text_element import Text
from elements.button_element import Button
from components.base_component import BaseComponent

logger = get_logger("CONFIRM_WINDOW")


[документация] 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")