e-nms_qa_automation/components/dropdown_list_component.py

53 lines
2.0 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.

"""Модуль dropdown_list_component содержит класс для работы с выпадающими списками.
Класс DropdownList наследует базовый функционал BaseComponent и добавляет
методы для взаимодействия с выпадающими списками на странице.
"""
from playwright.sync_api import Page
from tools.logger import get_logger
from components.base_component import BaseComponent
logger = get_logger("DROPDOWN_LIST")
class DropdownList(BaseComponent):
"""Класс для работы с выпадающими списками.
Наследует функциональность BaseElement и добавляет специфичные
методы для выбора и проверки элементов списка.
"""
def __init__(self, page: Page):
"""Инициализирует компонент выпадающего списка.
Args:
page: Экземпляр страницы Playwright.
"""
super().__init__(page)
# Действия:
def click_item_with_text(self, text: str) -> None:
"""Выбирает элемент списка по указанному тексту.
Args:
text (str): Текст элемента для выбора.
"""
self.page.get_by_role("listitem").filter(has_text=text).click()
# Проверки:
def check_item_with_text(self, text: str) -> None:
"""Проверяет наличие и доступность элемента списка.
Args:
text (str): Текст элемента для проверки.
Raises:
AssertionError: Если элемент отсутствует или недоступен.
"""
enabled = self.page.get_by_role("listitem").filter(has_text=text).is_enabled()
if not enabled:
assert False, f"Dropdown list item '{text}' is missing or disabled"