diff --git a/components/toolbar_component.py b/components/toolbar_component.py index 1e2c4e5..862366b 100644 --- a/components/toolbar_component.py +++ b/components/toolbar_component.py @@ -27,6 +27,7 @@ class ToolbarComponent(BaseComponent): def __init__(self, page: Page, title: str) -> None: """Инициализирует компонент тулбара с указанным заголовком.""" + super().__init__(page) self.title = title self.buttons = [] @@ -38,6 +39,7 @@ class ToolbarComponent(BaseComponent): Args: title (str): Новый заголовок """ + self.title = title def add_tooltip_button(self, locator: Locator, name: str) -> None: @@ -47,6 +49,7 @@ class ToolbarComponent(BaseComponent): locator (Locator): Локатор кнопки name (str): Уникальное имя кнопки """ + self.buttons.append(TooltipButton(self.page, locator, name)) def add_tab_button(self, locator: Locator, name: str) -> None: @@ -56,6 +59,7 @@ class ToolbarComponent(BaseComponent): locator (Locator): Локатор кнопки name (str): Уникальное имя кнопки """ + self.buttons.append(TabButton(self.page, locator, name)) def add_button(self, locator: Locator, name: str) -> None: @@ -65,6 +69,7 @@ class ToolbarComponent(BaseComponent): locator (Locator): Локатор кнопки name (str): Уникальное имя кнопки """ + self.buttons.append(Button(self.page, locator, name)) def get_button_by_name(self, name: str @@ -77,6 +82,7 @@ class ToolbarComponent(BaseComponent): Returns: TooltipButton | TabButton | Button | None: Найденная кнопка или None """ + for button in self.buttons: if button.name == name: return button @@ -91,6 +97,7 @@ class ToolbarComponent(BaseComponent): Raises: AssertionError: Если кнопка не найдена """ + button = self.get_button_by_name(name) if button is None: raise AssertionError(f"Unsupported button name {name}") @@ -112,6 +119,7 @@ class ToolbarComponent(BaseComponent): Raises: Exception: Если не удалось получить заголовок """ + # Получаем локатор заголовка title_locator = self.get_locator(locator) @@ -128,6 +136,40 @@ class ToolbarComponent(BaseComponent): return title_text + def get_toolbar_composite_title_text(self, locator: str|Locator , + timeout: int = 5000) -> []: + """Получает составной заголовок тулбара окна в виде списка подзаголовков. + + Args: + locator: Локатор для заголовка тулбара + timeout: Таймаут ожидания в миллисекундах + + Returns: + str: Текст заголовка тулбара + + Raises: + Exception: Если не удалось получить заголовок + """ + + toolbar_title_items = [] + + # Получаем локатор заголовка + title_locator = self.get_locator(locator) + + # Ждем появления заголовка с помощью expect + expect(title_locator).to_be_visible(timeout=timeout) + + # Найти все элементы
  • внутри