diff --git a/components/navbar_component.py b/components/navbar_component.py index d605e25..ce130b5 100644 --- a/components/navbar_component.py +++ b/components/navbar_component.py @@ -1,4 +1,4 @@ -from playwright.sync_api import Page +from playwright.sync_api import Page, Locator from components.base_component import BaseComponent from locators.navigation_panel_locators import NavigationPanelLocators @@ -9,57 +9,24 @@ logger = get_logger("NAVIGATION_PANEL") class NavigationPanelComponent(BaseComponent): - """Компонент панели навигации. - - Предоставляет методы для взаимодействия с элементами навигационной панели. - Наследуется от BaseComponent. - - Атрибуты: - page: Page - экземпляр страницы Playwright - """ + """Компонент панели навигации.""" def __init__(self, page: Page): - """Инициализация компонента панели навигации. - - Args: - page: Page - экземпляр страницы Playwright - """ super().__init__(page) # Действия: - def get_item_names(self, locator): - """Получает тексты всех элементов по указанному локатору. - - Args: - locator: Локатор для поиска элементов - - Returns: - list: Список текстов элементов - """ + def get_item_names(self, locator: str | Locator) -> list[str]: + """Получает тексты всех элементов по указанному локатору.""" loc = self.get_locator(locator) return loc.all_inner_texts() - def click_item(self, locator, item_name): - """Кликает по элементу с указанным текстом. - - Args: - locator: Локатор для поиска элемента - item_name: Текст элемента для клика - """ + def click_item(self, locator: str | Locator, item_name: str) -> None: + """Кликает по элементу с указанным текстом.""" loc = self.get_locator(locator) loc.get_by_text(item_name).click() - def click_sub_item(self, locator, sublevel_number, item_name): - """Кликает по вложенному элементу с указанным текстом. - - Args: - locator: Локатор для поиска элемента - sublevel_number: Уровень вложенности (1 или 2) - item_name: Текст элемента для клика - - Raises: - ValueError: Если указан недопустимый уровень вложенности - """ + def click_sub_item(self, locator: str | Locator, sublevel_number: int, item_name: str) -> None: + """Кликает по вложенному элементу с указанным текстом.""" root_locator = self.get_locator(NavigationPanelLocators.NODE_ROOT) children_locator = self.get_locator(NavigationPanelLocators.NODE_CHILDREN) @@ -73,13 +40,8 @@ class NavigationPanelComponent(BaseComponent): raise ValueError("the navigation panel has two levels of nesting only") # Проверки: - def check_item_visibility(self, locator, item_name): - """Проверяет видимость элемента с указанным текстом. - - Args: - locator: Локатор для поиска элемента - item_name: Текст элемента для проверки - """ + def check_item_visibility(self, locator: str | Locator, item_name: str) -> None: + """Проверяет видимость элемента с указанным текстом.""" loc = self.get_locator(locator).get_by_text(item_name) msg = f"Navigation panel item '{item_name}' is not visible" self.check_presence(loc, msg) \ No newline at end of file