from pages.login_page import LoginPage from pages.main_page import MainPage from pages.users_tab import UsersTab import pytest class TestUsersModalWindow: """Тесты для проверки модальных окон работы с пользователями. Содержит тесты для проверки: - Прокрутки модальных окон (вертикальной и горизонтальной) - Видимости элементов после прокрутки - Функциональности окон редактирования и добавления пользователей """ # @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("Пользователи") @pytest.mark.develop def test_edit_user_window_scrolling(self, browser): """Тест проверки прокрутки окна редактирования пользователя. Проверяет: 1. Возможность вертикальной и горизонтальной прокрутки 2. Видимость кнопок после прокрутки 3. Корректность работы прокрутки в разных направлениях Args: browser: Фикстура браузера """ # Инициализация страницы работы с пользователями ut = UsersTab(browser) # Открытие окна редактирования пользователя user_name, role = ut.open_edit_user_page_by_index(0) # Получение модального окна modal_window = ut.get_modal_window(user_name) # Проверка вертикальной прокрутки is_scrollable_vertically = modal_window.check_window_vertical_scrolling() assert is_scrollable_vertically, "Should be vertical scrolling" # Прокрутка вниз и проверка кнопки "close" modal_window.scroll_window_down() modal_window.check_button_presence("close") ut.wait_for_timeout(3000) # Прокрутка вверх и проверка кнопки "close" в тулбаре modal_window.scroll_window_up() modal_window.check_toolbar_button_presence("close") ut.wait_for_timeout(3000) # Проверка горизонтальной прокрутки is_scrollable_horizontally = modal_window.check_window_horizontal_scrolling() assert is_scrollable_horizontally, "Should be horizontal scrolling" # Прокрутка вправо и влево modal_window.scroll_window_right() ut.wait_for_timeout(3000) modal_window.scroll_window_left() ut.wait_for_timeout(2000) def test_add_user_window_scrolling(self, browser): """Тест проверки прокрутки окна добавления пользователя. Проверяет: 1. Возможность вертикальной и горизонтальной прокрутки 2. Видимость кнопок после прокрутки 3. Корректность работы прокрутки в разных направлениях Args: browser: Фикстура браузера """ # Инициализация страницы работы с пользователями ut = UsersTab(browser) # Открытие окна добавления пользователя ut.open_add_user_window() # Получение модального окна modal_window = ut.get_modal_window("add_user") # Проверка вертикальной прокрутки is_scrollable_vertically = modal_window.check_window_vertical_scrolling() assert is_scrollable_vertically, "Should be vertical scrolling" # Прокрутка вниз и проверка кнопки "close" modal_window.scroll_window_down() modal_window.check_button_presence("close") ut.wait_for_timeout(3000) # Прокрутка вверх и проверка кнопки "close" в тулбаре modal_window.scroll_window_up() modal_window.check_toolbar_button_presence("close") ut.wait_for_timeout(3000) # Проверка горизонтальной прокрутки is_scrollable_horizontally = modal_window.check_window_horizontal_scrolling() assert is_scrollable_horizontally, "Should be horizontal scrolling" # Прокрутка вправо и влево modal_window.scroll_window_right() ut.wait_for_timeout(3000) modal_window.scroll_window_left() ut.wait_for_timeout(2000)