Skip to content

ViewTemplateModalWindow

Модуль modal_view_template содержит класс для работы с модальным окном шаблона.

Класс ViewTemplateModalWindow наследует базовый функционал ModalWindowComponent и реализует методы просмотра модального окна шаблона.

ViewTemplateModalWindow

Bases: ModalWindowComponent

Модальное окно шаблона.

Наследует ModalWindowComponent и добавляет функционал для: 1. Инициализации модального окна с конкретным шаблоном 2. Закрытия модального окна 3. Получения конфигурационных данных шаблона 4. Проверки содержимого модального окна

Source code in components_derived\modal_view_template.py
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
class ViewTemplateModalWindow(ModalWindowComponent):
    """Модальное окно шаблона.

    Наследует ModalWindowComponent и добавляет функционал для:
    1. Инициализации модального окна с конкретным шаблоном
    2. Закрытия модального окна
    3. Получения конфигурационных данных шаблона
    4. Проверки содержимого модального окна
    """

    def __init__(self, page: Page, template_name: str):
        """Инициализирует элементы формы модального окна шаблона."""

        super().__init__(page)

        # Настройка заголовка и кнопки закрытия
        self.window_title = template_name
        locator_button_toolbar_close = self.page.get_by_role("navigation").filter(
            has_text=re.compile(self.window_title)
        ).get_by_role("button")

        self.add_toolbar_title(self.window_title)
        self.add_toolbar_button(locator_button_toolbar_close, "close")

    def close_window(self) -> None:
        """Закрывает окно через кнопку 'Закрыть'."""

        close_button = self.get_button_by_name("close")
        close_button.click()

    def check_content(self) -> None:
        """Проверяет наличие и корректность элементов окна.

        Проверяет:
        1. Наличие заголовка окна с именем шаблона
        2. Видимость кнопки закрытия
        3. Подсказку кнопки закрытия
        """

        self.check_by_window_title()
        self.check_toolbar_button_visibility("close")
        self.check_toolbar_button_tooltip("close", "Закрыть")

    # Разрабатывается =========================================================
    def _get_config_data(self) -> dict:
        """Получает конфигурационные данные из модального окна.

        Returns:
            dict: Словарь с конфигурационными данными или пустой словарь
        """
        config_data = {}

        # Ищем контейнер с конфигурационными данными
        config_container = self.page.locator(
            "//*[@id='app']/div[2]/div/div/div/div/div/div/div/div/div[2]/div/div/div"
        )

        return config_data

__init__(page, template_name)

Инициализирует элементы формы модального окна шаблона.

Source code in components_derived\modal_view_template.py
26
27
28
29
30
31
32
33
34
35
36
37
38
def __init__(self, page: Page, template_name: str):
    """Инициализирует элементы формы модального окна шаблона."""

    super().__init__(page)

    # Настройка заголовка и кнопки закрытия
    self.window_title = template_name
    locator_button_toolbar_close = self.page.get_by_role("navigation").filter(
        has_text=re.compile(self.window_title)
    ).get_by_role("button")

    self.add_toolbar_title(self.window_title)
    self.add_toolbar_button(locator_button_toolbar_close, "close")

check_content()

Проверяет наличие и корректность элементов окна.

Проверяет: 1. Наличие заголовка окна с именем шаблона 2. Видимость кнопки закрытия 3. Подсказку кнопки закрытия

Source code in components_derived\modal_view_template.py
46
47
48
49
50
51
52
53
54
55
56
57
def check_content(self) -> None:
    """Проверяет наличие и корректность элементов окна.

    Проверяет:
    1. Наличие заголовка окна с именем шаблона
    2. Видимость кнопки закрытия
    3. Подсказку кнопки закрытия
    """

    self.check_by_window_title()
    self.check_toolbar_button_visibility("close")
    self.check_toolbar_button_tooltip("close", "Закрыть")

close_window()

Закрывает окно через кнопку 'Закрыть'.

Source code in components_derived\modal_view_template.py
40
41
42
43
44
def close_window(self) -> None:
    """Закрывает окно через кнопку 'Закрыть'."""

    close_button = self.get_button_by_name("close")
    close_button.click()