"""Модуль компонента окна подтверждения действий.
Содержит класс 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 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_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")