95 lines
4.0 KiB
Python
95 lines
4.0 KiB
Python
from playwright.sync_api import Page
|
||
|
||
from components.base_component import BaseComponent
|
||
from elements.button_element import Button
|
||
from elements.text_element import Text
|
||
from locators.confirm_locators import ConfirmLocators
|
||
|
||
from tools.logger import get_logger
|
||
|
||
logger = get_logger("CONFIRM_WINDOW")
|
||
|
||
|
||
class ConfirmComponent(BaseComponent):
|
||
"""Компонент окна подтверждения действий.
|
||
|
||
Предоставляет методы для взаимодействия с диалоговыми окнами подтверждения,
|
||
содержащими кнопки отмены и подтверждения действия.
|
||
|
||
Атрибуты:
|
||
page: экземпляр страницы Playwright
|
||
title: текстовый элемент заголовка окна
|
||
text: текстовый элемент основного сообщения
|
||
close_button: кнопка закрытия окна
|
||
cancel_button: кнопка отмены действия
|
||
allow_button: кнопка подтверждения действия
|
||
"""
|
||
|
||
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):
|
||
"""Нажатие кнопки подтверждения действия.
|
||
|
||
Выполняет клик по кнопке с текстом, переданным в allow_button_text.
|
||
"""
|
||
self.allow_button.click()
|
||
|
||
def click_cancel_button(self):
|
||
"""Нажатие кнопки отмены действия.
|
||
|
||
Выполняет клик по кнопке с текстом, переданным в cancel_button_text.
|
||
"""
|
||
self.cancel_button.click()
|
||
|
||
def click_close_button(self):
|
||
"""Нажатие кнопки закрытия окна подтверждения."""
|
||
self.close_button.click()
|
||
|
||
# Проверки:
|
||
def check_title(self, title, msg):
|
||
"""Проверка текста заголовка окна подтверждения.
|
||
|
||
Args:
|
||
title: ожидаемый текст заголовка
|
||
msg: сообщение об ошибке при несоответствии
|
||
|
||
Raises:
|
||
AssertionError: если текст заголовка не соответствует ожидаемому
|
||
"""
|
||
self.title.check_have_text(title, msg)
|
||
|
||
def check_text(self, text, msg):
|
||
"""Проверка текста сообщения в окне подтверждения.
|
||
|
||
Args:
|
||
text: ожидаемый текст сообщения
|
||
msg: сообщение об ошибке при несоответствии
|
||
|
||
Raises:
|
||
AssertionError: если текст сообщения не соответствует ожидаемому
|
||
"""
|
||
self.text.check_have_text(text, msg) |