76 lines
3.3 KiB
Python
76 lines
3.3 KiB
Python
"""Модуль компонента панели выбора значения.
|
||
|
||
Содержит класс для работы с компонентом панели выбора значения через Playwright.
|
||
"""
|
||
|
||
from playwright.sync_api import Page, Locator, expect
|
||
from tools.logger import get_logger
|
||
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")
|
||
|
||
|
||
class SelectionBarComponent(BaseComponent):
|
||
"""Компонент панели выбора значения.
|
||
|
||
Предоставляет методы для взаимодействия с элементами компонента панели выбора значения.
|
||
"""
|
||
|
||
def __init__(self, page: Page, locator: str | Locator):
|
||
"""Инициализирует компонент панели выбора значения.
|
||
|
||
Args:
|
||
page: Экземпляр страницы Playwright.
|
||
locator: Локатор панели выбора значения (строка или объект Locator)
|
||
"""
|
||
|
||
super().__init__(page)
|
||
|
||
# Локатор панели параметра фильтрации
|
||
self.selection_bar_locator = self.get_locator(locator)
|
||
|
||
# При нажатии на панель появляется выпадающий список с параметрами фильтрации для выбора
|
||
self.selected_values_list = DropdownList(self.page)
|
||
|
||
# Действия:
|
||
def clear_selections(self) -> None:
|
||
""" Удаление ранее выбранных значений """
|
||
|
||
selected_values = self.get_selected_values()
|
||
if len(selected_values) > 0:
|
||
clear_button_locator = self.selection_bar_locator.\
|
||
locator(SelectionBarLocators.CLEAR_SELECTION_BUTTON)
|
||
clear_button_locator.click()
|
||
|
||
|
||
def get_selection_bar_title(self) -> str:
|
||
""" Возвращает название панели выбора значения """
|
||
|
||
title_locator = self.selection_bar_locator.locator("//label")
|
||
return title_locator.text_content()
|
||
|
||
def get_selected_values(self) -> []:
|
||
""" Возвращает список выбранных значений """
|
||
|
||
selected_values_locator = self.selection_bar_locator.\
|
||
locator(SelectionBarLocators.PARAMETERS_SELECTED)
|
||
|
||
selected_values = selected_values_locator.all_inner_texts()
|
||
return selected_values[0].splitlines()
|
||
|
||
def open_values_list(self) -> None:
|
||
""" Открытие выпадающего списка путем нажатия на панель выбора значения """
|
||
|
||
expect(self.selection_bar_locator).to_be_visible()
|
||
self.selection_bar_locator.click()
|
||
|
||
def select_value(self, name: str) -> None:
|
||
""" Выбор значения из списка """
|
||
|
||
self.selected_values_list.check_item_with_text(name)
|
||
self.selected_values_list.click_item_with_text(name)
|
||
|
||
# Проверки:
|