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

Skip to content

# TextInput

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

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

## `TextInput`

Bases: `BaseElement`

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

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

Source code in `elements\text_input_element.py`

     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
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119

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

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

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

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

            return "text input"

        # Действия:
        def get_input_value(self) -> str:
            """Возвращает текущее значение поля ввода.

            Returns:
                str: Текущее значение в поле.
            """

            logger.info(f'Getting value from text input "{self.name}"')
            return self.locator.input_value()

        def get_input_type(self) -> str:
            """Возвращает значение аттрибута type поля ввода.

            Returns:
                str: Значение аттрибута type.
            """

            return self.locator.get_attribute("type")

        def decrease_value(self) -> None:
            """Уменьшение на единицу значения поля настройки с помощью стрелочки вниз."""

            logger.info(f'Decrease input value for "{self.name}"')

            attr = self.locator.get_attribute("type")
            assert attr=="number", "Field type should be number to increase value"

            self.locator.hover()
            self.locator.wait_for(timeout=500)
            self.locator.press('ArrowDown')
            self.locator.wait_for(timeout=500)

        def increase_value(self) -> None:
            """Увеличение на единицу значения поля настройки с помощью стрелочки вверх."""

            logger.info(f'Increase input value for "{self.name}"')

            attr = self.locator.get_attribute("type")
            assert attr=="number", "Field type should be number to increase value"

            self.locator.hover()
            self.locator.wait_for(timeout=500)
            self.locator.press('ArrowUp')
            self.locator.wait_for(timeout=500)

        def input_value(self, value: str) -> None:
            """Вводит указанное значение в поле.

            Args:
                value (str): Значение для ввода.
            """

            logger.info(f'Inputting value "{value}" to text input "{self.name}"')
            self.locator.fill(value)

        def clear(self) -> None:
            """Очищает содержимое текстового поля."""

            logger.info(f'Clearing text input "{self.name}"')
            self.locator.press('Control+A')
            self.locator.press('Backspace')

        # Проверки:
        def check_empty_input(self, msg: str) -> None:
            """Проверяет, что поле ввода пустое.

            Args:
                msg (str): Сообщение об ошибке при неудачной проверке.

            Raises:
                AssertionError: Если поле не пустое.
            """

            logger.info(f'Checking that text input "{self.name}" is empty')
            expect(self.locator).to_be_empty(), msg

        def check_editable_input(self, msg: str) -> None:
            """Проверяет, что поле ввода редактируемое.

            Args:
                msg (str): Сообщение об ошибке при неудачной проверке.

            Raises:
                AssertionError: Если поле не пустое.
            """

            logger.info(f'Checking that text input "{self.name}" is editable')
            expect(self.locator).to_be_editable(), msg

### `type_of` `property`

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

Returns:

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

### `check_editable_input(msg)`

Проверяет, что поле ввода редактируемое.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`msg` | `str` | Сообщение об ошибке при неудачной проверке. | required

Raises:

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

Source code in `elements\text_input_element.py`

    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119

    def check_editable_input(self, msg: str) -> None:
        """Проверяет, что поле ввода редактируемое.

        Args:
            msg (str): Сообщение об ошибке при неудачной проверке.

        Raises:
            AssertionError: Если поле не пустое.
        """

        logger.info(f'Checking that text input "{self.name}" is editable')
        expect(self.locator).to_be_editable(), msg

### `check_empty_input(msg)`

Проверяет, что поле ввода пустое.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`msg` | `str` | Сообщение об ошибке при неудачной проверке. | required

Raises:

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

Source code in `elements\text_input_element.py`

     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106

    def check_empty_input(self, msg: str) -> None:
        """Проверяет, что поле ввода пустое.

        Args:
            msg (str): Сообщение об ошибке при неудачной проверке.

        Raises:
            AssertionError: Если поле не пустое.
        """

        logger.info(f'Checking that text input "{self.name}" is empty')
        expect(self.locator).to_be_empty(), msg

### `clear()`

Очищает содержимое текстового поля.

Source code in `elements\text_input_element.py`

    87
    88
    89
    90
    91
    92

    def clear(self) -> None:
        """Очищает содержимое текстового поля."""

        logger.info(f'Clearing text input "{self.name}"')
        self.locator.press('Control+A')
        self.locator.press('Backspace')

### `decrease_value()`

Уменьшение на единицу значения поля настройки с помощью стрелочки вниз.

Source code in `elements\text_input_element.py`

    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62

    def decrease_value(self) -> None:
        """Уменьшение на единицу значения поля настройки с помощью стрелочки вниз."""

        logger.info(f'Decrease input value for "{self.name}"')

        attr = self.locator.get_attribute("type")
        assert attr=="number", "Field type should be number to increase value"

        self.locator.hover()
        self.locator.wait_for(timeout=500)
        self.locator.press('ArrowDown')
        self.locator.wait_for(timeout=500)

### `get_input_type()`

Возвращает значение аттрибута type поля ввода.

Returns:

Name | Type | Description
--- | --- | ---
`str` | `str` | Значение аттрибута type.

Source code in `elements\text_input_element.py`

    42
    43
    44
    45
    46
    47
    48
    49

    def get_input_type(self) -> str:
        """Возвращает значение аттрибута type поля ввода.

        Returns:
            str: Значение аттрибута type.
        """

        return self.locator.get_attribute("type")

### `get_input_value()`

Возвращает текущее значение поля ввода.

Returns:

Name | Type | Description
--- | --- | ---
`str` | `str` | Текущее значение в поле.

Source code in `elements\text_input_element.py`

    32
    33
    34
    35
    36
    37
    38
    39
    40

    def get_input_value(self) -> str:
        """Возвращает текущее значение поля ввода.

        Returns:
            str: Текущее значение в поле.
        """

        logger.info(f'Getting value from text input "{self.name}"')
        return self.locator.input_value()

### `increase_value()`

Увеличение на единицу значения поля настройки с помощью стрелочки вверх.

Source code in `elements\text_input_element.py`

    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75

    def increase_value(self) -> None:
        """Увеличение на единицу значения поля настройки с помощью стрелочки вверх."""

        logger.info(f'Increase input value for "{self.name}"')

        attr = self.locator.get_attribute("type")
        assert attr=="number", "Field type should be number to increase value"

        self.locator.hover()
        self.locator.wait_for(timeout=500)
        self.locator.press('ArrowUp')
        self.locator.wait_for(timeout=500)

### `input_value(value)`

Вводит указанное значение в поле.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`value` | `str` | Значение для ввода. | required

Source code in `elements\text_input_element.py`

    77
    78
    79
    80
    81
    82
    83
    84
    85

    def input_value(self, value: str) -> None:
        """Вводит указанное значение в поле.

        Args:
            value (str): Значение для ввода.
        """

        logger.info(f'Inputting value "{value}" to text input "{self.name}"')
        self.locator.fill(value)