Добавлена функция выдачи элементов выпвдающего списка для компонента панели выбора значений

sidebar_filter
nsubbot 2025-11-20 14:11:34 +03:00
parent 42a813180f
commit 6c6f8c18f2
6 changed files with 73 additions and 50 deletions

View File

@ -9,9 +9,7 @@ from tools.logger import get_logger
from locators.toolbar_locators import ToolbarLocators
from components.events_container_component import EventsContainerComponent
logger = get_logger("USER_SETTINGS_DIALOG")
logger = get_logger("SYSTEM_LOG_EVENTS_CONTAINER")
class SystemLogEventsContainer(EventsContainerComponent):

View File

@ -9,7 +9,7 @@ from locators.selection_bar_locators import SelectionBarLocators
from components.dropdown_list_component import DropdownList
from components.base_component import BaseComponent
logger = get_logger("FILTER_PARAMETER_BAR")
logger = get_logger("SELECTION_BAR")
class SelectionBarComponent(BaseComponent):
@ -44,6 +44,26 @@ class SelectionBarComponent(BaseComponent):
locator(SelectionBarLocators.CLEAR_SELECTION_BUTTON)
clear_button_locator.click()
def get_available_options(self) -> list[str]:
"""Возвращает список всех доступных опций из выпадающего списка """
logger.info("Получение списка доступных опций из выпадающего списка...")
# Открываем выпадающий список
self.open_values_list()
# Ждем появления списка
self.page.wait_for_timeout(1000)
# Получаем все элементы списка
options = self.selected_values_list.get_item_names(SelectionBarLocators.LIST_ITEMS)
# Закрываем список (кликаем вне его)
self.page.mouse.click(10, 10)
self.page.wait_for_timeout(500)
logger.info(f"Найдено доступных опций: {len(options)} - {options}")
return options
def get_selection_bar_title(self) -> str:
""" Возвращает название панели выбора значения """
@ -51,7 +71,7 @@ class SelectionBarComponent(BaseComponent):
title_locator = self.selection_bar_locator.locator("//label")
return title_locator.text_content()
def get_selected_values(self) -> []:
def get_selected_values(self) -> list[str]:
""" Возвращает список выбранных значений """
selected_values_locator = self.selection_bar_locator.\

View File

@ -1,20 +1,20 @@
"""Модуль компонента боковой панели формы ввода полей фильтрации отображения данных в панели событий. Содержит класс для работы
с формами ввода, их элементами и проверками."""
"""Модуль компонента боковой панели формы ввода полей фильтрации отображения данных в панели событий. Содержит класс
для работы с формами ввода, их элементами и проверками."""
from playwright.sync_api import Page, Locator
from tools.logger import get_logger
from elements.button_element import Button
from components_derived.selection_bar_component import SelectionBarComponent
from components_derived.date_input_component import DateInput
from components.toolbar_component import ToolbarComponent
from components.base_component import BaseComponent
from components_derived.selection_bar_component import SelectionBarComponent
from components_derived.date_input_component import DateInput
logger = get_logger("SIDEBAR_FILTER")
class SidebarFilterComponent(BaseComponent):
"""Компонент боковой панели формы ввода полей фильтрации отображения данных в панели событий. Предоставляет методы для
взаимодействия с формой, ее содержимым и проверок."""
"""Компонент боковой панели формы ввода полей фильтрации отображения данных в панели событий. Предоставляет методы
для взаимодействия с формой, ее содержимым и проверок."""
def __init__(self, page: Page, locator: str | Locator):
"""Инициализирует компонент боковой панели формы ввода параметров фильтрации.

View File

@ -8,9 +8,15 @@ class SelectionBarLocators:
"""Локаторы для компонента панели выбора значения.
Содержит XPath/CSS локаторы для:
- Кнопок открытия и очистки
- Выбранных значений
- Элементов выпадающего списка
"""
OPEN_PARAMETERS_LIST_BUTTON = "div.v-input__icon--append"
CLEAR_SELECTION_BUTTON = "div.v-input__icon--clear"
PARAMETERS_SELECTED = "div.v-select__selections"
# Локаторы для элементов выпадающего списка
LISTBOX = "//div[@role='listbox']"
LIST_ITEMS = "//div[@role='listbox']//div[@role='listitem']"

View File

@ -103,4 +103,3 @@ class TestSelectionBarComponent:
filter_type_bar.clear_selections()
selected_values = filter_type_bar.get_selected_values()
assert len(selected_values) == 0, "Selected values should be deleted"