from allure import step import re from playwright.sync_api import expect from src.ui_elements.base_ui_element import BaseUIElement class CheckboxUIElement(BaseUIElement): @step("Is {0} checked - {checked}") def is_checked(self, checked): self.log.info(f"Does element {self.locator} contain class - {checked}") if checked is True: expect(self._element).to_have_class(re.compile(r"checkbox--checked")) elif checked is False: expect(self._element).not_to_have_class(re.compile(r"checkbox--checked")) def get_by(self, *args): self.log.info(f"Getting '{self.name}' element by parameters") return CheckboxUIElement(self.page, self.locator.format(*args), self.name) def __str__(self): return f"Checkbox {self.name}"