удален alert_component.py из корня проекта
Signed-off-by: RadislavY <ya.radislav@gmail.ru>pull/1/head
parent
399c17131f
commit
f9be9017c2
|
|
@ -1,98 +0,0 @@
|
|||
from elements.text_element import Text
|
||||
from playwright.sync_api import Page, expect
|
||||
from tools.logger import get_logger
|
||||
|
||||
from components.base_component import BaseComponent
|
||||
|
||||
logger = get_logger("ALERT")
|
||||
|
||||
|
||||
class AlertComponent(BaseComponent):
|
||||
"""Компонент для работы с alert-окнами.
|
||||
|
||||
Поддерживает различные типы alert-окон: error, success, info, warning.
|
||||
|
||||
Атрибуты:
|
||||
page: экземпляр страницы Playwright
|
||||
alert_type: тип alert-окна (error/success/info/warning)
|
||||
text: текстовый элемент сообщения alert-окна
|
||||
"""
|
||||
|
||||
def __init__(self, page: Page, alert_type: str):
|
||||
"""Инициализация компонента alert-окна.
|
||||
|
||||
Args:
|
||||
page: экземпляр страницы Playwright
|
||||
alert_type: тип alert-окна (error/success/info/warning)
|
||||
|
||||
Raises:
|
||||
ValueError: если передан неподдерживаемый тип alert-окна
|
||||
"""
|
||||
super().__init__(page)
|
||||
|
||||
alert_types = ["error", "success", "info", "warning"]
|
||||
if alert_type not in alert_types:
|
||||
raise ValueError("Unsupported type of alert window")
|
||||
|
||||
self.alert_type = alert_type
|
||||
self.text = Text(page,
|
||||
f"//div[@class='v-alert {self.alert_type}']/div",
|
||||
"Alert message")
|
||||
|
||||
# Действия:
|
||||
def get_text(self) -> str:
|
||||
"""Получение текста сообщения из alert-окна.
|
||||
|
||||
Returns:
|
||||
str: текст сообщения alert-окна
|
||||
"""
|
||||
return self.text.get_text(0)
|
||||
|
||||
# Проверки:
|
||||
def check_presence(self, text: str)-> None:
|
||||
"""Проверка наличия alert-окна с заданным текстом.
|
||||
|
||||
Args:
|
||||
text: текст для проверки (если пустая строка - проверяется только наличие окна)
|
||||
|
||||
Raises:
|
||||
AssertionError: если alert-окно не найдено
|
||||
"""
|
||||
msg = f"No {self.alert_type} alert window on page"
|
||||
if text == "":
|
||||
expect(self.page.get_by_role("alert")).to_be_visible(), msg
|
||||
else:
|
||||
expect(
|
||||
self.page.get_by_role("alert").filter(
|
||||
has_text=text)).to_be_visible(), msg
|
||||
|
||||
def check_absence(self, text: str, timeout: int = 30000):
|
||||
"""Проверка отсутствия alert-окна с заданным текстом.
|
||||
|
||||
Args:
|
||||
text: текст для проверки
|
||||
timeout: время ожидания исчезновения (в миллисекундах)
|
||||
|
||||
Raises:
|
||||
AssertionError: если alert-окно не исчезает в течение заданного времени
|
||||
"""
|
||||
seconds = int(timeout / 1000)
|
||||
msg = f"Alert {
|
||||
self.alert_type} window should disappear after {seconds} seconds"
|
||||
expect(
|
||||
self.page.get_by_role("alert").filter(
|
||||
has_text=text)).to_be_hidden(
|
||||
timeout=timeout), msg
|
||||
|
||||
def check_text(self, alert_text: str):
|
||||
"""Проверка точного соответствия текста в alert-окне.
|
||||
|
||||
Args:
|
||||
alert_text: ожидаемый текст сообщения
|
||||
|
||||
Raises:
|
||||
AssertionError: если текст не соответствует ожидаемому
|
||||
"""
|
||||
self.text.check_have_text(
|
||||
alert_text, f"Unexpected message in alert {
|
||||
self.alert_type} window")
|
||||
Loading…
Reference in New Issue