e-nms_qa_automation/locators/rack_locators.py

42 lines
2.4 KiB
Python
Raw 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.

# rack_locators.py
"""Модуль rack_locators содержит локаторы элементов страницы стойки."""
class RackLocators:
"""Локаторы для элементов страницы стойки."""
# Основные вкладки - исправленные локаторы на основе реальной структуры
TABS_CONTAINER = "//div[contains(@class, 'v-tabs')]"
# Все элементы вкладок
ALL_TABS = "//div[contains(@class, 'v-tabs__div') or contains(@class, 'v-tabs__item')]"
# Конкретные вкладки по тексту
GENERAL_INFO_TAB = "//div[contains(@class, 'v-tabs__div') and contains(., 'Общая информация')]"
MAINTENANCE_TAB = "//div[contains(@class, 'v-tabs__div') and contains(., 'Обслуживание')]"
EVENTS_TAB = "//div[contains(@class, 'v-tabs__div') and contains(., 'События')]"
SERVICES_TAB = "//div[contains(@class, 'v-tabs__div') and contains(., 'Сервисы')]"
# Универсальный локатор для любой вкладки по имени
TAB_BY_NAME = "//div[contains(@class, 'v-tabs__div') and contains(., '{}')]"
# Классы для проверки активности
ACTIVE_TAB_CLASSES = ["v-tabs__item--active", "v-tab--active", "active", "accent--text"]
# Контейнер формы
FORM_CONTAINER = "//div[contains(@class, 'container')]"
# Упрощенные локаторы для полей ввода
NAME_FIELD = "//*[contains(text(), 'Имя')]/following::input[1]"
SERIAL_NUMBER_FIELD = "//*[contains(text(), 'Серийный номер')]/following::input[1]"
INVENTORY_NUMBER_FIELD = "//*[contains(text(), 'Инвентарный номер')]/following::input[1]"
CABLE_ENTRY_FIELD = "//*[contains(text(), 'Ввод кабеля')]/following::input[1]"
STATUS_FIELD = "//*[contains(text(), 'Состояние')]/following::input[1]"
HEIGHT_FIELD = "//*[contains(text(), 'Высота в юнитах')]/following::input[1]"
OWNER_FIELD = "//*[contains(text(), 'Владелец')]/following::input[1]"
SERVICE_ORG_FIELD = "//*[contains(text(), 'Обслуживающая организация')]/following::input[1]"
PROJECT_FIELD = "//*[contains(text(), 'Проект/Титул')]/following::input[1]"
# Все input поля в форме
ALL_INPUTS = "//input[@type='text']"