import allure from appium.webdriver.webdriver import WebDriver from src.ui_elements.base_ui_element import BaseUIElement class LabelUIElement(BaseUIElement): @property @allure.step("Getting text of {0}") def text(self): self.log.info(f"Getting text of {self.locator[1]}") return self._element.text def __str__(self): return self.name class LabelUIByText: def __init__(self, driver: WebDriver, by_text_locator, name=''): self.driver = driver self._by_text_locator = by_text_locator self.name = name def get_item_by_text(self, text): return LabelUIElement(self.driver, (self._by_text_locator[0], self._by_text_locator[1].format(text)), self.name)