"""Модуль checkbox_element содержит класс для работы с чекбоксами.
Класс Checkbox наследует базовый функционал BaseElement и добавляет
специфичные методы для работы с элементами типа 'чекбокс'.
"""
from tools.logger import get_logger
from elements.base_element import BaseElement
logger = get_logger("CHECKBOX")
[документация]
class Checkbox(BaseElement):
"""Класс для работы с чекбоксами на странице.
Наследует функциональность BaseElement и добавляет методы для
взаимодействия с чекбоксами и проверки их состояния.
"""
@property
def type_of(self) -> str:
"""Возвращает тип элемента ('чекбокс').
Returns:
str: Тип элемента - 'чекбокс'.
"""
return "checkbox"
# Действия:
[документация]
def check(self, force=False) -> None:
"""Отмечает чекбокс (устанавливает галочку)."""
logger.info(f"Checking checkbox '{self.name}'")
if force:
self.locator.check(force=True)
else:
self.locator.check()
[документация]
def uncheck(self, force=False) -> None:
"""Снимает отметку с чекбокса (убирает галочку)."""
logger.info(f"Unchecking checkbox '{self.name}'")
if force:
self.locator.uncheck(force=True)
else:
self.locator.uncheck()
# Проверки:
[документация]
def is_checked(self) -> bool:
"""Проверяет, отмечен ли чекбокс.
Returns:
bool: True если отмечен, False если нет.
"""
logger.info(f"Checking if checkbox '{self.name}' is checked")
return self.locator.is_checked()