59 lines
1.9 KiB
Python
59 lines
1.9 KiB
Python
"""Модуль 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()
|