e-nms_qa_automation/components/confirm_component.py

95 lines
4.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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)