Skip to content

DropdownList

DropdownList

Bases: BaseElement

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

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

Source code in elements\dropdown_list_element.py
 8
 9
10
11
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
class DropdownList(BaseElement):
    """Класс для работы с выпадающими списками на странице.

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

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

        Returns:
            Строка с типом элемента.
        """
        return "dropdown list"

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

        Args:
            text: Текст элемента, который нужно выбрать.
        """
        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: Текст элемента, который нужно проверить.

        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:

Type Description
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
34
35
36
37
38
39
40
41
42
43
44
45
46
def check_item_with_text(self, text: str) -> None:
    """Проверяет наличие и доступность элемента с указанным текстом.

    Args:
        text: Текст элемента, который нужно проверить.

    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
24
25
26
27
28
29
30
31
def click_item_with_text(self, text: str) -> None:
    """Кликает на элемент списка с указанным текстом.

    Args:
        text: Текст элемента, который нужно выбрать.
    """
    logger.info(f'Selecting item with text "{text}" from dropdown "{self.name}"')
    self.page.get_by_role("listitem").filter(has_text=text).click()