Обновление локаторов элементов стойки v2
parent
4523ff6db3
commit
e87b428f09
|
|
@ -16,27 +16,28 @@ class RackLocators:
|
|||
- Контейнеры и структурные элементы
|
||||
"""
|
||||
|
||||
|
||||
# Основной контейнер вкладок стойки (верхние вкладки)
|
||||
TABS_CONTAINER = "//div[starts-with(@data-testid, 'CABINET_SHOW__') and contains(@class, 'v-tabs__div')]"
|
||||
TABS_CONTAINER = "//div[@data-testid='CABINET_SHOW__tabs' and contains(@class, 'v-tabs')]"
|
||||
|
||||
# Все элементы верхних вкладок стойки
|
||||
ALL_TABS = "//div[starts-with(@data-testid, 'CABINET_SHOW__') and contains(@class, 'v-tabs__div')]//a[contains(@class, 'v-tabs__item')]"
|
||||
ALL_TABS = "//div[@data-testid='CABINET_SHOW__tabs']//a[contains(@class, 'v-tabs__item')]"
|
||||
|
||||
# Кнопка редактирования свойств стойки
|
||||
EDIT_BUTTON ="//button[@data-testid='CABINET_SHOW__btn__edit']"
|
||||
|
||||
# Кнопка "Скрыть стойку"
|
||||
HIDE_RACK_BUTTON = "//div[@data-testid='CABINET_SHOW__div__hideCabinet']"
|
||||
HIDE_RACK_BUTTON = "//div[@data-testid='CABINET_SHOW__div__hideCabinet' and contains(@class, 'cabinet_hide_button_trigger_show')]"
|
||||
|
||||
# Кнопка "Показать стойку"
|
||||
SHOW_RACK_BUTTON = "//div[@data-testid='CABINET_SHOW__div__hideCabinet']"
|
||||
SHOW_RACK_BUTTON = "//div[@data-testid='CABINET_SHOW__div__hideCabinet' and contains(@class, 'cabinet_hide_button_trigger_hide')]"
|
||||
|
||||
# Универсальный локатор для любой вкладки по имени
|
||||
TAB_BY_NAME = "//div[starts-with(@data-testid, 'CABINET_SHOW__') and contains(@class, 'v-tabs__div')]//a[contains(@class, 'v-tabs__item') and .//*[contains(., '{}')]]"
|
||||
|
||||
# Конкретные вкладки по тексту
|
||||
COMPOSITION_TAB = "//div[@data-testid='CABINET_SHOW__composition_tab']//a[contains(@class, 'v-tabs__item')]"
|
||||
GENERAL_INFO_TAB = "//div[@data-testid='CABINET_SHOW__general_info_tab']//a[contains(@class, 'v-tabs__item')]"
|
||||
GENERAL_INFO_TAB = "//div[@data-testid='CABINET_SHOW__main_tab']//a[contains(@class, 'v-tabs__item')]"
|
||||
MAINTENANCE_TAB = "//div[@data-testid='CABINET_SHOW__service_tab']//a[contains(@class, 'v-tabs__item')]"
|
||||
EVENTS_TAB = "//div[@data-testid='CABINET_SHOW__events_tab']//a[contains(@class, 'v-tabs__item')]"
|
||||
SERVICES_TAB = "//div[@data-testid='CABINET_SHOW__services_tab']//a[contains(@class, 'v-tabs__item')]"
|
||||
|
|
@ -45,7 +46,7 @@ class RackLocators:
|
|||
ACTIVE_TAB_CLASSES = ["accent--text", "v-tabs__item--active"]
|
||||
|
||||
# Локатор для активной вкладки
|
||||
ACTIVE_TAB = "//div[starts-with(@data-testid, 'CABINET_SHOW__') and contains(@class, 'v-tabs__div')]//a[contains(@class, 'v-tabs__item--active')]"
|
||||
ACTIVE_TAB = "//div[@data-testid='CABINET_SHOW__tabs']//a[contains(@class, 'v-tabs__item--active')]"
|
||||
|
||||
# Контейнер формы
|
||||
FORM_CONTAINER = "//div[contains(@class, 'container')]"
|
||||
|
|
@ -82,7 +83,10 @@ class RackLocators:
|
|||
|
||||
# ================ ЛОКАТОРЫ ДЛЯ СТРУКТУРЫ СТОЙКИ ===================
|
||||
|
||||
# Основной контейнер стойки
|
||||
# Общий контейнер стойки (включает кнопки переключения сторон и MAIN_CONTAINER)
|
||||
RACK_CONTAINER = "//div[contains(@class, 'layout active') and contains(@class, 'row') and contains(@class, 'shrink')]"
|
||||
|
||||
# Основной контейнер стойки (изображение стойки)
|
||||
MAIN_CONTAINER = "//div[contains(@class, 'layout cabinet')]"
|
||||
|
||||
# Кнопки переключения сторон
|
||||
|
|
|
|||
|
|
@ -433,34 +433,57 @@ class RackPage(BasePage):
|
|||
|
||||
def should_have_hide_rack_button(self) -> None:
|
||||
"""
|
||||
Упрощенная проверка кнопки "Скрыть стойку".
|
||||
Проверяет только кликабельность и наличие элемента.
|
||||
Проверка кнопки "Скрыть стойку".
|
||||
Проверяет видимость, тултип, кликабельность и эффект скрытия стойки.
|
||||
"""
|
||||
logger.info("Checking 'Hide rack' button...")
|
||||
|
||||
# Проверяем видимость
|
||||
# Проверяем видимость кнопки
|
||||
self.toolbar.check_button_visibility("hide_rack")
|
||||
self.toolbar.check_button_tooltip("hide_rack", "Скрыть стойку")
|
||||
|
||||
# Проверяем, что кнопка кликабельна
|
||||
# Получаем общий контейнер стойки до клика
|
||||
rack_container = self.page.locator(RackLocators.RACK_CONTAINER)
|
||||
|
||||
# Проверяем, что контейнер существует
|
||||
expect(rack_container).to_be_visible(timeout=5000)
|
||||
|
||||
# Кликаем на кнопку "Скрыть стойку"
|
||||
self.toolbar.get_button_by_name("hide_rack").click()
|
||||
self.wait_for_timeout(1000)
|
||||
self.wait_for_timeout(2000) # Даем время для применения стилей
|
||||
|
||||
# Проверяем, что общий контейнер стойки теперь скрыт (имеет display: none)
|
||||
expect(rack_container).to_have_css("display", "none", timeout=5000)
|
||||
logger.info("Rack container successfully hidden (display: none)")
|
||||
|
||||
logger.info("'Hide rack' button test completed successfully")
|
||||
|
||||
def should_have_show_rack_button(self) -> None:
|
||||
"""
|
||||
Проверка кнопки "Показать стойку".
|
||||
Проверяет наличие, тултип и кликабельность.
|
||||
Проверяет наличие, тултип, кликабельность и эффект показа стойки.
|
||||
"""
|
||||
|
||||
logger.info("Checking 'Show rack' button...")
|
||||
|
||||
# Проверяем видимость
|
||||
# Проверяем видимость кнопки
|
||||
self.toolbar.check_button_visibility("show_rack")
|
||||
self.toolbar.check_button_tooltip("show_rack", "Показать стойку")
|
||||
|
||||
# Проверяем кликабельность
|
||||
# Получаем общий контейнер стойки
|
||||
rack_container = self.page.locator(RackLocators.RACK_CONTAINER)
|
||||
|
||||
# Проверяем, что контейнер существует
|
||||
expect(rack_container).to_be_attached(timeout=5000)
|
||||
|
||||
# Кликаем на кнопку "Показать стойку"
|
||||
self.toolbar.get_button_by_name("show_rack").click()
|
||||
self.wait_for_timeout(1000)
|
||||
self.wait_for_timeout(2000) # Даем время для применения стилей
|
||||
|
||||
# Проверяем, что общий контейнер стойки теперь видим (display не равен "none")
|
||||
expect(rack_container).not_to_have_css("display", "none", timeout=5000)
|
||||
logger.info("Rack container successfully shown (display is not 'none')")
|
||||
|
||||
logger.info("'Show rack' button test completed successfully")
|
||||
|
||||
# Вспомогательные методы
|
||||
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ class TestRackTab:
|
|||
mp.click_subpanel_item("Test-Rack-01", parent="test-zone")
|
||||
mp.wait_for_timeout(3000)
|
||||
|
||||
#@pytest.mark.develop
|
||||
@pytest.mark.develop
|
||||
def test_rack_tab_content(self, browser: Page) -> None:
|
||||
"""Тест содержимого вкладки 'Стойка'.
|
||||
|
||||
|
|
@ -89,11 +89,8 @@ class TestRackTab:
|
|||
# Проверка кнопки "Показать стойку"
|
||||
rt.should_have_show_rack_button()
|
||||
|
||||
# Переход в режим редактирования
|
||||
rt.should_be_toolbar_buttons()
|
||||
rt.wait_for_timeout(2000)
|
||||
|
||||
@pytest.mark.develop
|
||||
def test_rack_tab_switching(self, browser: Page) -> None:
|
||||
"""Тест переключения между вкладками стойки оборудования.
|
||||
|
||||
|
|
@ -116,3 +113,7 @@ class TestRackTab:
|
|||
|
||||
# Проверяем переключение между всеми вкладками стойки
|
||||
rt.check_tab_switching()
|
||||
|
||||
# Переход в режим редактирования
|
||||
rt.should_be_toolbar_buttons()
|
||||
rt.wait_for_timeout(2000)
|
||||
|
|
|
|||
Loading…
Reference in New Issue