from pages.login_page import LoginPage from pages.main_page import MainPage from pages.service_status_tab import ServiceStatusTab import pytest class TestServiceStatusTable: """Тесты для проверки таблицы статусов сервисов. Содержит тесты для проверки: - Отображения таблицы статусов сервисов - Содержимого таблицы - Возможности вертикальной прокрутки """ # @pytest.mark.smoke @pytest.fixture(scope="function", autouse=True) def setup(self, browser): """Фикстура для настройки тестового окружения. Выполняет: 1. Авторизацию в системе 2. Переход на главную страницу 3. Проверку видимости панели навигации 4. Переход на вкладку 'Статус обслуживания' Args: browser: Фикстура браузера """ # Авторизация в системе 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_maintenance_navigation_panel_item("Статус обслуживания") def test_scrolling(self, browser): """Тест проверки прокрутки таблицы статусов сервисов. Проверяет: 1. Наличие таблицы статусов сервисов 2. Содержимое таблицы 3. Возможность вертикальной прокрутки 4. Видимость строк после прокрутки Args: browser: Фикстура браузера """ # Инициализация страницы с таблицей статусов сервисов sst = ServiceStatusTab(browser) # Проверка наличия таблицы sst.should_be_services_table() # Проверка содержимого таблицы sst.check_services_table_content() # Проверка возможности вертикальной прокрутки is_scrollable_vertically = sst.check_services_table_verticall_scrolling() assert is_scrollable_vertically, "Should be verticall scrolling" # Прокрутка вниз и проверка видимости последней строки sst.scroll_services_table_down() sst.check_services_table_last_row_visibility() sst.wait_for_timeout(3000) # Прокрутка вверх и проверка видимости первой строки sst.scroll_services_table_up() sst.check_services_table_first_row_visibility() sst.wait_for_timeout(2000)