diff --git a/alert_component.py b/alert_component.py deleted file mode 100644 index 3c4d876..0000000 --- a/alert_component.py +++ /dev/null @@ -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")