72 lines
2.5 KiB
Python
72 lines
2.5 KiB
Python
"""Модуль text_input_element содержит класс для работы с текстовыми полями ввода.
|
||
|
||
Класс TextInput наследует базовый функционал BaseElement и предоставляет
|
||
методы для взаимодействия с текстовыми полями ввода на странице.
|
||
"""
|
||
|
||
from playwright.sync_api import expect
|
||
from tools.logger import get_logger
|
||
from elements.base_element import BaseElement
|
||
|
||
logger = get_logger("TEXT_INPUT")
|
||
|
||
|
||
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 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
|