e-nms_qa_automation/pages/location_page.py

97 lines
3.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

"""Модуль страницы локации."""
from playwright.sync_api import Page
from components.toolbar_component import ToolbarComponent
from pages.base_page import BasePage
class LocationPage(BasePage):
"""Класс для работы со страницей локации."""
# Константы локаторов
TOOLBAR_BUTTONS_LOCATOR = (
"//div[contains(@class, 'layout class--')]"
"//span[@class='v-tooltip v-tooltip--bottom']//button"
)
# Индексы кнопок
CREATE_BUTTON_INDEX = 0 # Первая кнопка
EDIT_BUTTON_INDEX = 1 # Вторая кнопка
def __init__(self, page: Page) -> None:
"""
Инициализирует страницу локации.
Args:
page: Экземпляр страницы Playwright
"""
super().__init__(page)
# Инициализация тулбара
self.toolbar = ToolbarComponent(page, "")
# Кнопка "Создать" - первая кнопка
create_button_locator = self.page.locator(
self.TOOLBAR_BUTTONS_LOCATOR
).nth(self.CREATE_BUTTON_INDEX)
# Кнопка "Изменить" - вторая кнопка
edit_button_locator = self.page.locator(
self.TOOLBAR_BUTTONS_LOCATOR
).nth(self.EDIT_BUTTON_INDEX)
# Инициализация кнопок
self.toolbar.add_tooltip_button(create_button_locator, "create")
self.toolbar.add_tooltip_button(edit_button_locator, "edit")
self._create_child_frame = None
# Действия
def click_create_button(self) -> None:
"""
Кликает на кнопку 'Создать'.
Returns:
None
"""
# Используем метод тулбара для клика
self.toolbar.click_button("create")
self.wait_for_timeout(3000)
def click_edit_button(self) -> None:
"""
Кликает на кнопку 'Изменить'.
Returns:
None
"""
self.toolbar.click_button("edit")
self.wait_for_timeout(2000)
def wait_for_timeout(self, timeout: int) -> None:
"""
Ожидает указанное количество миллисекунд.
Args:
timeout: Время ожидания в миллисекундах
"""
self.page.wait_for_timeout(timeout)
# Проверки
def should_be_toolbar_buttons(self) -> None:
"""
Проверяет наличие и функциональность кнопок тулбара.
Raises:
AssertionError: Если кнопки недоступны или подсказки неверны.
"""
# Проверяем кнопку "Создать"
self.toolbar.check_button_visibility("create")
self.toolbar.check_button_tooltip("create", "Создать")
# Проверяем кнопку "Изменить"
self.toolbar.check_button_visibility("edit")
self.toolbar.check_button_tooltip("edit", "Изменить")
self.wait_for_timeout(2000)