e-nms_qa_automation/elements/dropdown_list_element.py

46 lines
1.9 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.

from playwright.sync_api import expect
from elements.base_element import BaseElement
from tools.logger import get_logger
logger = get_logger("DROPDOWN_LIST")
class DropdownList(BaseElement):
"""Класс для работы с выпадающими списками на странице.
Наследует функциональность базового элемента и добавляет специфичные для dropdown-списков методы.
"""
@property
def type_of(self) -> str:
"""Возвращает тип элемента - 'выпадающий список'.
Returns:
Строка с типом элемента.
"""
return "dropdown list"
# Действия:
def click_item_with_text(self, text: str) -> None:
"""Кликает на элемент списка с указанным текстом.
Args:
text: Текст элемента, который нужно выбрать.
"""
logger.info(f'Selecting item with text "{text}" from dropdown "{self.name}"')
self.page.get_by_role("listitem").filter(has_text=text).click()
# Проверки:
def check_item_with_text(self, text: str) -> None:
"""Проверяет наличие и доступность элемента с указанным текстом.
Args:
text: Текст элемента, который нужно проверить.
Raises:
AssertionError: Если элемент отсутствует или недоступен.
"""
logger.info(f'Checking item with text "{text}" in dropdown "{self.name}"')
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"