63 lines
2.6 KiB
Python
63 lines
2.6 KiB
Python
"""Модуль тестов панели навигации.
|
||
|
||
Содержит тесты для проверки функциональности и прокрутки
|
||
панели навигации в приложении.
|
||
"""
|
||
|
||
from playwright.sync_api import Page
|
||
from pages.main_page import MainPage
|
||
from pages.login_page import LoginPage
|
||
|
||
# Запуск с viewport: {'width': 300, 'height': 420}
|
||
|
||
# @pytest.mark.smoke
|
||
class TestNavigationPanel:
|
||
"""Класс тестов для проверки панели навигации.
|
||
|
||
Атрибуты:
|
||
browser: Фикстура для работы с браузером.
|
||
"""
|
||
|
||
def test_verticall_scrolling(self, browser: Page):
|
||
"""Проверяет вертикальную прокрутку панели навигации.
|
||
|
||
Args:
|
||
browser: Фикстура для работы с браузером.
|
||
|
||
Raises:
|
||
AssertionError: Если панель не поддерживает прокрутку.
|
||
"""
|
||
|
||
# Действия:
|
||
lp = LoginPage(browser)
|
||
lp.do_login()
|
||
|
||
# Мы на главной странице
|
||
mp = MainPage(browser)
|
||
|
||
# Проверки:
|
||
# Проверяем наличие панели навигации
|
||
mp.should_be_navigation_panel()
|
||
|
||
# Открываем все пункты панели
|
||
mp.click_main_navigation_panel_item("Настройки")
|
||
mp.click_configuration_navigation_panel_item("Аутентификация")
|
||
mp.click_configuration_navigation_panel_item("Уведомления")
|
||
mp.click_configuration_navigation_panel_item("Обслуживание и диагностика")
|
||
mp.click_configuration_navigation_panel_item("Zero Touch Provisioning")
|
||
|
||
# Проверяем возможность вертикальной прокрутки
|
||
is_scrollable = mp.check_navigation_panel_verticall_scrolling()
|
||
assert is_scrollable, "Should be vertical scrolling"
|
||
|
||
# Действия:
|
||
# Прокручиваем вверх и проверяем видимость элемента
|
||
mp.scroll_navigation_panel_up()
|
||
mp.check_navigation_panel_item_visibility("Панель приборов")
|
||
mp.wait_for_timeout(3000)
|
||
|
||
# Прокручиваем вниз и проверяем видимость элемента Настройки/ZTP/Шаблоны
|
||
mp.scroll_navigation_panel_down()
|
||
mp.check_navigation_panel_item_visibility("Шаблоны_2")
|
||
mp.wait_for_timeout(2000)
|