# DropdownList - Документация тестов eNODE-Мониторинг

Skip to content

# DropdownList

Модуль dropdown_list_element содержит класс для работы с выпадающими списками.

Класс DropdownList наследует базовый функционал BaseElement и добавляет методы для взаимодействия с выпадающими списками на странице.

## `DropdownList`

Bases: `BaseElement`

Класс для работы с выпадающими списками.

Наследует функциональность BaseElement и добавляет специфичные методы для выбора и проверки элементов списка.

Source code in `elements\dropdown_list_element.py`

    12
    13
    14
    15
    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

    class DropdownList(BaseElement):
        """Класс для работы с выпадающими списками.

        Наследует функциональность BaseElement и добавляет специфичные
        методы для выбора и проверки элементов списка.
        """

        @property
        def type_of(self) -> str:
            """Возвращает тип элемента ('выпадающий список').

            Returns:
                str: Тип элемента - 'выпадающий список'.
            """

            return "dropdown list"

        # Действия:
        def click_item_with_text(self, text: str) -> None:
            """Выбирает элемент списка по указанному тексту.

            Args:
                text (str): Текст элемента для выбора.
            """

            logger.info(f'Selecting item with text "{text}" from dropdown "{self.name}"')
            self.page.get_by_role("listitem").filter(has_text=text).click()

        # Проверки:
        def check_item_with_text(self, text: str) -> None:
            """Проверяет наличие и доступность элемента списка.

            Args:
                text (str): Текст элемента для проверки.

            Raises:
                AssertionError: Если элемент отсутствует или недоступен.
            """

            logger.info(f'Checking item with text "{text}" in dropdown "{self.name}"')
            enabled = self.page.get_by_role("listitem").filter(has_text=text).is_enabled()
            if not enabled:
                assert False, f"Dropdown list item '{text}' is missing or disabled"

### `type_of` `property`

Возвращает тип элемента ('выпадающий список').

Returns:

Name | Type | Description
--- | --- | ---
`str` | `str` | Тип элемента - 'выпадающий список'.

### `check_item_with_text(text)`

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

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`text` | `str` | Текст элемента для проверки. | required

Raises:

Type | Description
--- | ---
`AssertionError` | Если элемент отсутствует или недоступен.

Source code in `elements\dropdown_list_element.py`

    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54

    def check_item_with_text(self, text: str) -> None:
        """Проверяет наличие и доступность элемента списка.

        Args:
            text (str): Текст элемента для проверки.

        Raises:
            AssertionError: Если элемент отсутствует или недоступен.
        """

        logger.info(f'Checking item with text "{text}" in dropdown "{self.name}"')
        enabled = self.page.get_by_role("listitem").filter(has_text=text).is_enabled()
        if not enabled:
            assert False, f"Dropdown list item '{text}' is missing or disabled"

### `click_item_with_text(text)`

Выбирает элемент списка по указанному тексту.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`text` | `str` | Текст элемента для выбора. | required

Source code in `elements\dropdown_list_element.py`

    30
    31
    32
    33
    34
    35
    36
    37
    38

    def click_item_with_text(self, text: str) -> None:
        """Выбирает элемент списка по указанному тексту.

        Args:
            text (str): Текст элемента для выбора.
        """

        logger.info(f'Selecting item with text "{text}" from dropdown "{self.name}"')
        self.page.get_by_role("listitem").filter(has_text=text).click()