From 461a829b4e0e70f1293ba8a4fceaf17c9c3c71e4 Mon Sep 17 00:00:00 2001 From: Maxim Volkov Date: Fri, 18 Jul 2025 20:37:59 +0400 Subject: [PATCH 1/9] =?UTF-8?q?feat:=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=BF=D1=80=D0=BE=D0=BF=D1=83=D1=81=D0=BA=D0=B0=20=D0=BE?= =?UTF-8?q?=D0=BF=D0=B5=D0=BD=D0=B8=D0=BD=D0=B3=D0=B0=20=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BD=D0=B0=20=D1=81=D0=BB=D0=B5=D0=B4=D1=83=D1=8E?= =?UTF-8?q?=D1=89=D1=83=D1=8E=20=D1=81=D0=B5=D1=80=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/(main)/player/page.tsx | 2 ++ app/tests/page.tsx | 2 ++ app/ui/custom-link.tsx | 3 +++ app/ui/player/player.tsx | 46 +++++++++++++++++++++++++++++++++++++- 4 files changed, 52 insertions(+), 1 deletion(-) diff --git a/app/(main)/player/page.tsx b/app/(main)/player/page.tsx index f319581..099cb8f 100644 --- a/app/(main)/player/page.tsx +++ b/app/(main)/player/page.tsx @@ -17,6 +17,8 @@ export default async function Page() {
diff --git a/app/tests/page.tsx b/app/tests/page.tsx index 5b375da..1bbdb95 100644 --- a/app/tests/page.tsx +++ b/app/tests/page.tsx @@ -5,6 +5,8 @@ export default function TestPage() { ); } diff --git a/app/ui/custom-link.tsx b/app/ui/custom-link.tsx index 755409a..101e036 100644 --- a/app/ui/custom-link.tsx +++ b/app/ui/custom-link.tsx @@ -21,6 +21,7 @@ export interface customLinkProps fontWeight?: number; bgClass?: string; hideTextOnMobile?: boolean; + onClick?: () => void; } /** @@ -60,6 +61,7 @@ export default function CustomLink({ blurring = false, fontWeight = 400, hideTextOnMobile, + onClick, ...anhorProps }: customLinkProps) { if (ico !== undefined && (alt === undefined || icoSize === undefined)) @@ -67,6 +69,7 @@ export default function CustomLink({ return ( (null); // Условия показывания многих элементов const conditions = !started || allSerias; + + useEffect(() => { + const player = ref.current; + if (!player) return undefined; + + const updateTime = () => setCurrentTime(player.currentTime); + player.addEventListener("time-update", updateTime); + + return () => { + player.removeEventListener("time-update", updateTime); + }; + }, []); + + const handleSkip = () => { + if (ref.current?.currentTime) { + ref.current.currentTime = openingTime; + } + return undefined; + }; + return ( + endTime ? "block" : "hidden"}`} + onClick={() => { + ref.current?.pause(); + }} + /> + + From 5a6a387b104c25df0db0e67c9f128d542bc1e115 Mon Sep 17 00:00:00 2001 From: Maxim Volkov Date: Fri, 18 Jul 2025 22:22:30 +0400 Subject: [PATCH 2/9] =?UTF-8?q?tests:=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D1=8B=20test-id=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=BA=D0=BD=D0=BE=D0=BF=D0=BE=D0=BA=20=D0=BF=D1=80=D0=BE=D0=BF?= =?UTF-8?q?=D1=83=D1=81=D0=BA=D0=B0=20=D0=B2=D0=B8=D0=B4=D0=B5=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/ui/player/player.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/ui/player/player.tsx b/app/ui/player/player.tsx index 23cf24c..b979dcc 100644 --- a/app/ui/player/player.tsx +++ b/app/ui/player/player.tsx @@ -202,6 +202,7 @@ export default function Player({ onClick={() => { ref.current?.pause(); }} + test-id="button: next_episode" /> From 63d12f659655781144592a101739df7b82e7bf03 Mon Sep 17 00:00:00 2001 From: rgn2836 Date: Fri, 18 Jul 2025 21:53:42 +0300 Subject: [PATCH 3/9] =?UTF-8?q?tests:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D0=BA=D0=BB=D0=B8=D0=BA=20=D0=BF=D0=BE=20?= =?UTF-8?q?=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B5=20"=D0=9F=D1=80=D0=BE?= =?UTF-8?q?=D0=BF=D1=83=D1=81=D1=82=D0=B8=D1=82=D1=8C=20=D0=BE=D0=BF=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=BD=D0=B3"=20=D0=B4=D0=BB=D1=8F=20=D0=BD=D0=B0?= =?UTF-8?q?=D0=B4=D0=B5=D0=B6=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20=D1=82=D0=B5?= =?UTF-8?q?=D1=81=D1=82=D0=BE=D0=B2=20=D0=BD=D0=B0=20=D0=BD=D0=B0=D1=81?= =?UTF-8?q?=D1=82=D1=80=D0=BE=D0=B9=D0=BA=D0=B8=20=D0=BF=D0=BB=D0=B5=D0=B5?= =?UTF-8?q?=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/locators/player_page_locators.py | 1 + tests/pages/player_page.py | 2 ++ 2 files changed, 3 insertions(+) diff --git a/tests/locators/player_page_locators.py b/tests/locators/player_page_locators.py index 04368f2..8292a57 100644 --- a/tests/locators/player_page_locators.py +++ b/tests/locators/player_page_locators.py @@ -85,6 +85,7 @@ class PlayerLocators: PLAY_VIDEOPLAYER = (By.XPATH, '//button[@class="player-module-scss-module__kFWiqG__start"]') BOTTOM_PLAYER_CONTAINER = (By.XPATH, '//div[@class="player-module-scss-module__kFWiqG__control"]') PLAYER_LOADER = (By.XPATH, '//div[@class="player-module-scss-module__kFWiqG__loader-container"]') + SKIP_OPENING_PLAYER = (By.CSS_SELECTOR, '[test-id="button: skip_opening"]') MINI_PLAY_BUTTON = (By.XPATH, '//div[@class="player-module-scss-module__kFWiqG__side"]//button[@class="player-module-scss-module__kFWiqG__plays"]') MINI_SKIP_BUTTON = (By.XPATH, '//div[@class="player-module-scss-module__kFWiqG__side"]//button[@class="player-module-scss-module__kFWiqG__skip"]') diff --git a/tests/pages/player_page.py b/tests/pages/player_page.py index 55991c2..9ef076b 100644 --- a/tests/pages/player_page.py +++ b/tests/pages/player_page.py @@ -221,6 +221,8 @@ def click_to_play_player(self): self.find(locators.PLAY_VIDEOPLAYER).click() self.element_is_not_visible(locators.PLAY_VIDEOPLAYER, 100) self.element_is_not_visible(locators.PLAYER_LOADER, 20) + self.element_is_clickable(locators.SKIP_OPENING_PLAYER, 5) + self.find(locators.SKIP_OPENING_PLAYER).click() #self.element_is_visible(locators.BOTTOM_PLAYER_CONTAINER, 20) УТОЧНИТЬ assert self.find(locators.MINI_PLAY_BUTTON).get_attribute('aria-pressed') == "true", f'[Error] PlayerPage после нажатия на плеер не играет аниме. Стоит на паузе. Аттрибут aria_pressed = {self.find(locators.MINI_PLAY_BUTTON).get_attribute("aria-pressed")}' From 4f36f14406c04d1f5271900aae9fc04f7e834734 Mon Sep 17 00:00:00 2001 From: rgn2836 Date: Fri, 18 Jul 2025 22:35:33 +0300 Subject: [PATCH 4/9] =?UTF-8?q?tests:=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=B2=20=D1=84=D0=B8=D0=BA=D1=81=D1=82=D1=83?= =?UTF-8?q?=D1=80=D0=B5=20=D0=BE=D1=87=D0=B8=D1=81=D1=82=D0=BA=D1=83=20?= =?UTF-8?q?=D0=BA=D0=B5=D1=88=D0=B0=20=D0=B8=20=D0=BA=D1=83=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=20=D0=B2=D1=8B=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=82=D0=B5=D1=81=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/conftest.py | 4 ++++ tests/pages/player_page.py | 1 + tests/test_player_page.py | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/conftest.py b/tests/conftest.py index 679cdd4..5d7bfb3 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -53,7 +53,11 @@ def driver(request): else: """Обработка ситуации, если не указан стейдж""" raise pytest.UsageError("--stage should be local or dev") + yield driver + driver.delete_all_cookies() + driver.execute_script("window.localStorage.clear();") + driver.execute_script("window.sessionStorage.clear();") driver.quit() @pytest.fixture diff --git a/tests/pages/player_page.py b/tests/pages/player_page.py index 9ef076b..a4822df 100644 --- a/tests/pages/player_page.py +++ b/tests/pages/player_page.py @@ -315,6 +315,7 @@ def click_to_play_player_mobile(self): self.activate_mobile_player() self.element_is_not_visible(locators.PLAY_VIDEOPLAYER, 20) self.element_is_clickable(locators.PLAY_BUTTON_MOBILE, 20) + self.find(locators.SKIP_OPENING_PLAYER).click self.element_is_clickable(locators.PREV_EPISODE_BUTTON_MOBILE, 20) self.element_is_clickable(locators.NEXT_EPISODE_BUTTON_MOBILE, 20) diff --git a/tests/test_player_page.py b/tests/test_player_page.py index 347c7e0..6f51d83 100644 --- a/tests/test_player_page.py +++ b/tests/test_player_page.py @@ -416,7 +416,7 @@ def test_start_mobile_player(driver): playerpage.open_mobile('http://localhost:3001/player') playerpage.click_to_play_player_mobile() -@pytest.mark.smoke_mobile +@pytest.mark.smoke @allure.feature('Плеер для разрешения мобилок') def test_mobile_player_fullscreen(driver): """По клику на фуллскрин открывается фуллскрин плеер""" From b40dbd1e3abb28e2aa79cfad0e3b53a8e50bf5ac Mon Sep 17 00:00:00 2001 From: rgn2836 Date: Fri, 18 Jul 2025 23:23:03 +0300 Subject: [PATCH 5/9] =?UTF-8?q?tests:=20=D0=BE=D1=82=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D1=8B=D0=BC=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=BE?= =?UTF-8?q?=D0=BC=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=BA?= =?UTF-8?q?=D0=BB=D0=B8=D0=BA=20=D0=BF=D0=BE=20=D0=BA=D0=BD=D0=BE=D0=BF?= =?UTF-8?q?=D0=BA=D0=B5=20'=D0=BF=D1=80=D0=BE=D0=BF=D1=83=D1=81=D1=82?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20=D0=BE=D0=BF=D0=B5=D0=BD=D0=B8=D0=BD=D0=B3?= =?UTF-8?q?'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/pages/player_page.py | 11 +++++++++-- tests/test_player_page.py | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/tests/pages/player_page.py b/tests/pages/player_page.py index a4822df..66d8712 100644 --- a/tests/pages/player_page.py +++ b/tests/pages/player_page.py @@ -2,6 +2,7 @@ from locators.player_page_locators import PlayerLocators from locators.header_element_locators import HeaderElementLocators import random +from time import sleep from faker import Faker from selenium.webdriver.common.action_chains import ActionChains locators = PlayerLocators() @@ -221,11 +222,17 @@ def click_to_play_player(self): self.find(locators.PLAY_VIDEOPLAYER).click() self.element_is_not_visible(locators.PLAY_VIDEOPLAYER, 100) self.element_is_not_visible(locators.PLAYER_LOADER, 20) - self.element_is_clickable(locators.SKIP_OPENING_PLAYER, 5) - self.find(locators.SKIP_OPENING_PLAYER).click() + self.click_to_skip_opening() #self.element_is_visible(locators.BOTTOM_PLAYER_CONTAINER, 20) УТОЧНИТЬ assert self.find(locators.MINI_PLAY_BUTTON).get_attribute('aria-pressed') == "true", f'[Error] PlayerPage после нажатия на плеер не играет аниме. Стоит на паузе. Аттрибут aria_pressed = {self.find(locators.MINI_PLAY_BUTTON).get_attribute("aria-pressed")}' + def click_to_skip_opening(self): + sleep(1) + self.mouse_hover_to_player() + self.element_is_clickable(locators.SKIP_OPENING_PLAYER, 10) + self.find(locators.SKIP_OPENING_PLAYER).click() + self.element_is_not_visible(locators.SKIP_OPENING_PLAYER, 10) + def mouse_hover_to_player(self): self.element_is_not_visible(locators.BOTTOM_PLAYER_CONTAINER, 20) player = self.find(locators.VIDEOPLAYER_CONTAINER) diff --git a/tests/test_player_page.py b/tests/test_player_page.py index 6f51d83..347c7e0 100644 --- a/tests/test_player_page.py +++ b/tests/test_player_page.py @@ -416,7 +416,7 @@ def test_start_mobile_player(driver): playerpage.open_mobile('http://localhost:3001/player') playerpage.click_to_play_player_mobile() -@pytest.mark.smoke +@pytest.mark.smoke_mobile @allure.feature('Плеер для разрешения мобилок') def test_mobile_player_fullscreen(driver): """По клику на фуллскрин открывается фуллскрин плеер""" From 50bfad3cfb2e2999335f02a29f0d01b1524f196d Mon Sep 17 00:00:00 2001 From: rgn2836 Date: Fri, 18 Jul 2025 23:51:21 +0300 Subject: [PATCH 6/9] =?UTF-8?q?tests:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=B4=D0=BE=D0=BF=20=D0=BD=D0=B0=D0=B2=D0=B5?= =?UTF-8?q?=D0=B4=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=B0=20=D0=BF=D0=BB?= =?UTF-8?q?=D0=B5=D0=B5=D1=80=20=D0=B4=D0=BB=D1=8F=20=D0=BD=D0=B0=D0=B4?= =?UTF-8?q?=D0=B5=D0=B6=D0=BD=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/pages/player_page.py | 10 ++++++++-- tests/test_player_page.py | 12 ++++++------ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/tests/pages/player_page.py b/tests/pages/player_page.py index 66d8712..d2e9061 100644 --- a/tests/pages/player_page.py +++ b/tests/pages/player_page.py @@ -224,7 +224,7 @@ def click_to_play_player(self): self.element_is_not_visible(locators.PLAYER_LOADER, 20) self.click_to_skip_opening() #self.element_is_visible(locators.BOTTOM_PLAYER_CONTAINER, 20) УТОЧНИТЬ - assert self.find(locators.MINI_PLAY_BUTTON).get_attribute('aria-pressed') == "true", f'[Error] PlayerPage после нажатия на плеер не играет аниме. Стоит на паузе. Аттрибут aria_pressed = {self.find(locators.MINI_PLAY_BUTTON).get_attribute("aria-pressed")}' + #assert self.find(locators.MINI_PLAY_BUTTON).get_attribute('aria-pressed') == "true", f'[Error] PlayerPage после нажатия на плеер не играет аниме. Стоит на паузе. Аттрибут aria_pressed = {self.find(locators.MINI_PLAY_BUTTON).get_attribute("aria-pressed")}' def click_to_skip_opening(self): sleep(1) @@ -234,7 +234,7 @@ def click_to_skip_opening(self): self.element_is_not_visible(locators.SKIP_OPENING_PLAYER, 10) def mouse_hover_to_player(self): - self.element_is_not_visible(locators.BOTTOM_PLAYER_CONTAINER, 20) + #self.element_is_not_visible(locators.BOTTOM_PLAYER_CONTAINER, 20) player = self.find(locators.VIDEOPLAYER_CONTAINER) actions = ActionChains(self.driver) actions.move_to_element(player).perform() @@ -250,24 +250,28 @@ def click_to_setting_buttons(self): def click_to_language_button(self): self.element_is_clickable(locators.SETTINGS_LANGUAGE_BUTTON, 20) + self.mouse_hover_to_player() self.find(locators.SETTINGS_LANGUAGE_BUTTON).click() self.element_is_visible(locators.SETTINGS_AFTER_CLICK_WINDOW, 20) assert self.find(locators.SETTINGS_AFTER_CLICK_H1).text == "Озвучка", f'[Error] PlayerPage После нажатия на кнопку "Озвучка" открылся не тот поп ап, либо у него неверный H1. Фактический результа = {self.find(locators.SETTINGS_LANGUAGE_H1).text}' def click_to_speed_button(self): self.element_is_clickable(locators.SETTINGS_SPEED_BUTTON, 20) + self.mouse_hover_to_player() self.find(locators.SETTINGS_SPEED_BUTTON).click() self.element_is_visible(locators.SETTINGS_AFTER_CLICK_WINDOW, 20) assert self.find(locators.SETTINGS_AFTER_CLICK_H1).text == "Скорость", f'[Error] PlayerPage После нажатия на кнопку "Скорость" открылся не тот поп ап, либо у него неверный H1. Фактический результа = {self.find(locators.SETTINGS_LANGUAGE_H1).text}' def click_to_quality_button(self): self.element_is_clickable(locators.SETTINGS_QUALITY_BUTTON, 20) + self.mouse_hover_to_player() self.find(locators.SETTINGS_QUALITY_BUTTON).click() self.element_is_visible(locators.SETTINGS_AFTER_CLICK_WINDOW, 20) assert self.find(locators.SETTINGS_AFTER_CLICK_H1).text == "Качество", f'[Error] PlayerPage После нажатия на кнопку "Качество" открылся не тот поп ап, либо у него неверный H1. Фактический результа = {self.find(locators.SETTINGS_LANGUAGE_H1).text}' def click_to_other_settings_button(self): self.element_is_clickable(locators.SETTINGS_OTHER_BUTTON, 20) + self.mouse_hover_to_player() self.find(locators.SETTINGS_OTHER_BUTTON).click() self.element_is_visible(locators.SETTINGS_AFTER_CLICK_WINDOW, 20) assert self.find(locators.SETTINGS_AFTER_CLICK_H1).text == "Другие настройки", f'[Error] PlayerPage После нажатия на кнопку "Качество" открылся не тот поп ап, либо у него неверный H1. Фактический результа = {self.find(locators.SETTINGS_LANGUAGE_H1).text}' @@ -275,6 +279,7 @@ def click_to_other_settings_button(self): def click_to_subtitle_settings_button(self): self.mouse_hover_to_player() self.element_is_clickable(locators.SETTINGS_SUBTITLE_BUTTON, 20) + self.mouse_hover_to_player() self.find(locators.SETTINGS_SUBTITLE_BUTTON).click() self.element_is_visible(locators.SETTINGS_AFTER_CLICK_WINDOW, 20) assert self.find(locators.SETTINGS_AFTER_CLICK_H1).text == "Субтитры", f'[Error] PlayerPage После нажатия на кнопку "Субтитры" открылся не тот поп ап, либо у него неверный H1. Фактический результа = {self.find(locators.SETTINGS_LANGUAGE_H1).text}' @@ -282,6 +287,7 @@ def click_to_subtitle_settings_button(self): def click_to_more_volume_settings_button(self): self.mouse_hover_to_player() self.element_is_clickable(locators.SETTINGS_MORE_VOLUME_BUTTON, 20) + self.mouse_hover_to_player() self.find(locators.SETTINGS_MORE_VOLUME_BUTTON).click() self.element_is_visible(locators.SETTINGS_AFTER_CLICK_WINDOW, 20) assert self.find(locators.SETTINGS_AFTER_CLICK_H1).text == "Усиление громкости", f'[Error] PlayerPage После нажатия на кнопку "Усиление громкости" открылся не тот поп ап, либо у него неверный H1. Фактический результа = {self.find(locators.SETTINGS_LANGUAGE_H1).text}' diff --git a/tests/test_player_page.py b/tests/test_player_page.py index 347c7e0..2d53ce8 100644 --- a/tests/test_player_page.py +++ b/tests/test_player_page.py @@ -317,7 +317,7 @@ def test_click_to_setting_button(driver): playerpage.mouse_hover_to_player() playerpage.click_to_setting_buttons() -@pytest.mark.smoke_desktop +@pytest.mark.smoke @allure.feature('Плеер для разрешения декстопа') def test_language_popup(driver): playerpage = PlayerPage(driver) @@ -327,7 +327,7 @@ def test_language_popup(driver): playerpage.click_to_setting_buttons() playerpage.click_to_language_button() -@pytest.mark.smoke_desktop +@pytest.mark.smoke @allure.feature('Плеер для разрешения декстопа') def test_speed_popup(driver): playerpage = PlayerPage(driver) @@ -337,7 +337,7 @@ def test_speed_popup(driver): playerpage.click_to_setting_buttons() playerpage.click_to_speed_button() -@pytest.mark.smoke_desktop +@pytest.mark.smoke @allure.feature('Плеер для разрешения декстопа') def test_quality_popup(driver): playerpage = PlayerPage(driver) @@ -347,7 +347,7 @@ def test_quality_popup(driver): playerpage.click_to_setting_buttons() playerpage.click_to_quality_button() -@pytest.mark.smoke_desktop +@pytest.mark.smoke @allure.feature('Плеер для разрешения декстопа') def test_other_settings_popup(driver): playerpage = PlayerPage(driver) @@ -357,7 +357,7 @@ def test_other_settings_popup(driver): playerpage.click_to_setting_buttons() playerpage.click_to_other_settings_button() -@pytest.mark.smoke_desktop +@pytest.mark.smoke @allure.feature('Плеер для разрешения декстопа') def test_subtitle_popup(driver): playerpage = PlayerPage(driver) @@ -368,7 +368,7 @@ def test_subtitle_popup(driver): playerpage.click_to_other_settings_button() playerpage.click_to_subtitle_settings_button() -@pytest.mark.smoke_desktop +@pytest.mark.smoke @allure.feature('Плеер для разрешения декстопа') def test_more_volume_popup(driver): playerpage = PlayerPage(driver) From 731ea46a6871c80ba97f148cf204a9f8b28e725e Mon Sep 17 00:00:00 2001 From: rgn2836 Date: Sat, 19 Jul 2025 00:09:26 +0300 Subject: [PATCH 7/9] =?UTF-8?q?tests:=20=D0=BF=D0=BE=D1=84=D0=B8=D0=BA?= =?UTF-8?q?=D1=81=D0=B8=D0=BB=20=D0=BC=D0=B0=D1=80=D0=BA=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=BA=D1=83=20=D1=83=20=D0=BD=D0=B5=D0=BA=D0=BE=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D1=8B=D1=85=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/test_player_page.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/test_player_page.py b/tests/test_player_page.py index 2d53ce8..347c7e0 100644 --- a/tests/test_player_page.py +++ b/tests/test_player_page.py @@ -317,7 +317,7 @@ def test_click_to_setting_button(driver): playerpage.mouse_hover_to_player() playerpage.click_to_setting_buttons() -@pytest.mark.smoke +@pytest.mark.smoke_desktop @allure.feature('Плеер для разрешения декстопа') def test_language_popup(driver): playerpage = PlayerPage(driver) @@ -327,7 +327,7 @@ def test_language_popup(driver): playerpage.click_to_setting_buttons() playerpage.click_to_language_button() -@pytest.mark.smoke +@pytest.mark.smoke_desktop @allure.feature('Плеер для разрешения декстопа') def test_speed_popup(driver): playerpage = PlayerPage(driver) @@ -337,7 +337,7 @@ def test_speed_popup(driver): playerpage.click_to_setting_buttons() playerpage.click_to_speed_button() -@pytest.mark.smoke +@pytest.mark.smoke_desktop @allure.feature('Плеер для разрешения декстопа') def test_quality_popup(driver): playerpage = PlayerPage(driver) @@ -347,7 +347,7 @@ def test_quality_popup(driver): playerpage.click_to_setting_buttons() playerpage.click_to_quality_button() -@pytest.mark.smoke +@pytest.mark.smoke_desktop @allure.feature('Плеер для разрешения декстопа') def test_other_settings_popup(driver): playerpage = PlayerPage(driver) @@ -357,7 +357,7 @@ def test_other_settings_popup(driver): playerpage.click_to_setting_buttons() playerpage.click_to_other_settings_button() -@pytest.mark.smoke +@pytest.mark.smoke_desktop @allure.feature('Плеер для разрешения декстопа') def test_subtitle_popup(driver): playerpage = PlayerPage(driver) @@ -368,7 +368,7 @@ def test_subtitle_popup(driver): playerpage.click_to_other_settings_button() playerpage.click_to_subtitle_settings_button() -@pytest.mark.smoke +@pytest.mark.smoke_desktop @allure.feature('Плеер для разрешения декстопа') def test_more_volume_popup(driver): playerpage = PlayerPage(driver) From 74051cbd6ff5eb6515e9de0c27bfbc77aa66f535 Mon Sep 17 00:00:00 2001 From: rgn2836 Date: Sat, 19 Jul 2025 10:51:15 +0300 Subject: [PATCH 8/9] =?UTF-8?q?tests:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=B1=D0=BE=D0=BB=D1=8C=D1=88=D0=B5=20=D1=88?= =?UTF-8?q?=D0=B0=D0=B3=D0=BE=D0=B2=20=D1=81=20=D0=BD=D0=B0=D0=B2=D0=B5?= =?UTF-8?q?=D0=B4=D0=B5=D0=BD=D0=B8=D0=B5=D0=BC=20=D0=BC=D1=8B=D1=88=D0=B8?= =?UTF-8?q?=20=D0=BD=D0=B0=20=D0=BF=D0=BB=D0=B5=D0=B5=D1=80=20+=20=D0=B4?= =?UTF-8?q?=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20=D1=81=D0=BD=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D0=BA=20=D1=8D=D0=BA=D1=80=D0=B0=D0=BD=D0=B0=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=20=D0=BF=D0=B0=D0=B4=D0=B5=D0=BD=D0=B8=D0=B8=20?= =?UTF-8?q?=D1=82=D0=B5=D1=81=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/conftest.py | 25 ++++++++++++++++++++++++- tests/pages/player_page.py | 28 +++++++++++++++++----------- tests/test_main_page_SMOKE.py | 2 +- 3 files changed, 42 insertions(+), 13 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 5d7bfb3..76f25b1 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -3,6 +3,8 @@ from pages.main_page import MainPage from pages.sidebar_element import SideBar import pytest +import allure +import os def pytest_addoption(parser): parser.addoption('--stage', action='store', default=None, help="Choose stage: local or dev") @@ -72,4 +74,25 @@ def sidebar(driver): def main_page(driver): return MainPage(driver) - \ No newline at end of file + +# делаем скриншот +@pytest.hookimpl(tryfirst=True, hookwrapper=True) +def pytest_runtest_makereport(item, call): + outcome = yield + rep = outcome.get_result() + if rep.when == 'call' and rep.failed: + mode = 'a' if os.path.exists('failures') else 'w' + try: + with open('failures', mode) as f: + if 'driver' in item.fixturenames: + web_driver = item.funcargs['driver'] + else: + print('Fail to take screen-shot') + return + allure.attach( + web_driver.get_screenshot_as_png(), + name='screenshot', + attachment_type=allure.attachment_type.PNG + ) + except Exception as e: + print('Fail to take screen-shot: {}'.format(e)) \ No newline at end of file diff --git a/tests/pages/player_page.py b/tests/pages/player_page.py index d2e9061..48c0770 100644 --- a/tests/pages/player_page.py +++ b/tests/pages/player_page.py @@ -228,7 +228,7 @@ def click_to_play_player(self): def click_to_skip_opening(self): sleep(1) - self.mouse_hover_to_player() + self.activate_player_desktop() self.element_is_clickable(locators.SKIP_OPENING_PLAYER, 10) self.find(locators.SKIP_OPENING_PLAYER).click() self.element_is_not_visible(locators.SKIP_OPENING_PLAYER, 10) @@ -241,53 +241,56 @@ def mouse_hover_to_player(self): self.element_is_visible(locators.BOTTOM_PLAYER_CONTAINER, 20) #assert self.find(locators.MINI_PLAY_BUTTON).get_attribute('aria-pressed') == "true", f'[Error] PlayerPage после нажатия на плеер не играет аниме. Стоит на паузе. Аттрибут aria_pressed = {self.find(locators.MINI_PLAY_BUTTON).get_attribute("aria-pressed")}' + def activate_player_desktop(self): + player = self.find(locators.VIDEOPLAYER_CONTAINER) + actions = ActionChains(self.driver) + actions.move_to_element(player).perform() + def click_to_setting_buttons(self): self.element_is_visible(locators.BOTTOM_PLAYER_CONTAINER, 20) self.element_is_clickable(locators.SETTINGS_BUTTON_PLAYER, 20) - self.mouse_hover_to_player() + self.activate_player_desktop() self.find(locators.SETTINGS_BUTTON_PLAYER).click() self.element_is_visible(locators.SETTINGS_WINDOW_CONTAINER, 20) def click_to_language_button(self): self.element_is_clickable(locators.SETTINGS_LANGUAGE_BUTTON, 20) - self.mouse_hover_to_player() + self.activate_player_desktop() self.find(locators.SETTINGS_LANGUAGE_BUTTON).click() self.element_is_visible(locators.SETTINGS_AFTER_CLICK_WINDOW, 20) assert self.find(locators.SETTINGS_AFTER_CLICK_H1).text == "Озвучка", f'[Error] PlayerPage После нажатия на кнопку "Озвучка" открылся не тот поп ап, либо у него неверный H1. Фактический результа = {self.find(locators.SETTINGS_LANGUAGE_H1).text}' def click_to_speed_button(self): self.element_is_clickable(locators.SETTINGS_SPEED_BUTTON, 20) - self.mouse_hover_to_player() + self.activate_player_desktop() self.find(locators.SETTINGS_SPEED_BUTTON).click() self.element_is_visible(locators.SETTINGS_AFTER_CLICK_WINDOW, 20) assert self.find(locators.SETTINGS_AFTER_CLICK_H1).text == "Скорость", f'[Error] PlayerPage После нажатия на кнопку "Скорость" открылся не тот поп ап, либо у него неверный H1. Фактический результа = {self.find(locators.SETTINGS_LANGUAGE_H1).text}' def click_to_quality_button(self): self.element_is_clickable(locators.SETTINGS_QUALITY_BUTTON, 20) - self.mouse_hover_to_player() + self.activate_player_desktop() self.find(locators.SETTINGS_QUALITY_BUTTON).click() self.element_is_visible(locators.SETTINGS_AFTER_CLICK_WINDOW, 20) assert self.find(locators.SETTINGS_AFTER_CLICK_H1).text == "Качество", f'[Error] PlayerPage После нажатия на кнопку "Качество" открылся не тот поп ап, либо у него неверный H1. Фактический результа = {self.find(locators.SETTINGS_LANGUAGE_H1).text}' def click_to_other_settings_button(self): self.element_is_clickable(locators.SETTINGS_OTHER_BUTTON, 20) - self.mouse_hover_to_player() + self.activate_player_desktop() self.find(locators.SETTINGS_OTHER_BUTTON).click() self.element_is_visible(locators.SETTINGS_AFTER_CLICK_WINDOW, 20) assert self.find(locators.SETTINGS_AFTER_CLICK_H1).text == "Другие настройки", f'[Error] PlayerPage После нажатия на кнопку "Качество" открылся не тот поп ап, либо у него неверный H1. Фактический результа = {self.find(locators.SETTINGS_LANGUAGE_H1).text}' def click_to_subtitle_settings_button(self): - self.mouse_hover_to_player() self.element_is_clickable(locators.SETTINGS_SUBTITLE_BUTTON, 20) - self.mouse_hover_to_player() + self.activate_player_desktop() self.find(locators.SETTINGS_SUBTITLE_BUTTON).click() self.element_is_visible(locators.SETTINGS_AFTER_CLICK_WINDOW, 20) assert self.find(locators.SETTINGS_AFTER_CLICK_H1).text == "Субтитры", f'[Error] PlayerPage После нажатия на кнопку "Субтитры" открылся не тот поп ап, либо у него неверный H1. Фактический результа = {self.find(locators.SETTINGS_LANGUAGE_H1).text}' def click_to_more_volume_settings_button(self): - self.mouse_hover_to_player() self.element_is_clickable(locators.SETTINGS_MORE_VOLUME_BUTTON, 20) - self.mouse_hover_to_player() + self.activate_player_desktop() self.find(locators.SETTINGS_MORE_VOLUME_BUTTON).click() self.element_is_visible(locators.SETTINGS_AFTER_CLICK_WINDOW, 20) assert self.find(locators.SETTINGS_AFTER_CLICK_H1).text == "Усиление громкости", f'[Error] PlayerPage После нажатия на кнопку "Усиление громкости" открылся не тот поп ап, либо у него неверный H1. Фактический результа = {self.find(locators.SETTINGS_LANGUAGE_H1).text}' @@ -300,6 +303,7 @@ def change_timecode_player(self): def click_fullscreen(self): self.element_is_clickable(locators.FULLSCREEN_BUTTON, 20) + self.activate_player_desktop() self.find(locators.FULLSCREEN_BUTTON).click() assert self.find(locators.VIDEOPLAYER_CONTAINER).get_attribute('data-fullscreen') == "", f'[Error] PlayerPage после нажатия на фуллскрин button у плеер остутствует аттрибут data-fullscreen.' @@ -328,12 +332,14 @@ def click_to_play_player_mobile(self): self.activate_mobile_player() self.element_is_not_visible(locators.PLAY_VIDEOPLAYER, 20) self.element_is_clickable(locators.PLAY_BUTTON_MOBILE, 20) - self.find(locators.SKIP_OPENING_PLAYER).click + self.activate_mobile_player() + self.find(locators.SKIP_OPENING_PLAYER).click() self.element_is_clickable(locators.PREV_EPISODE_BUTTON_MOBILE, 20) self.element_is_clickable(locators.NEXT_EPISODE_BUTTON_MOBILE, 20) def click_to_settings_button_mobile(self): self.element_is_clickable(locators.SETTINGS_BUTTON_PLAYER_MOBILE, 20) + self.activate_mobile_player() self.find(locators.SETTINGS_BUTTON_PLAYER_MOBILE).click() self.element_is_visible(locators.SETTINGS_WINDOW_CONTAINER_MOBILE, 20) diff --git a/tests/test_main_page_SMOKE.py b/tests/test_main_page_SMOKE.py index 0cacc78..19bb64d 100644 --- a/tests/test_main_page_SMOKE.py +++ b/tests/test_main_page_SMOKE.py @@ -7,7 +7,7 @@ #Проверяем карусель 'По вашим предпочтениям' -@pytest.mark.smoke_desktop +@pytest.mark.smoke @allure.feature('MainPage. Карусель "По вашим предпочтениям".') def test_back_button_invisible_default(main_page): """В дефолтном состояние кнопка "Back" не активная""" From b7dc79fb13ea0ddbca91fee6761ada6587b9c95d Mon Sep 17 00:00:00 2001 From: rgn2836 Date: Sat, 19 Jul 2025 12:23:36 +0300 Subject: [PATCH 9/9] =?UTF-8?q?tests:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=B0=D0=BA=D1=82=D0=B8=D0=B2=D0=BD=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D1=8C=20=D0=BF=D0=BB=D0=B5=D0=B5=D1=80=D0=B0=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=BD=D0=B0=D0=B4=D0=B5=D0=B6=D0=BD=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/pages/player_page.py | 80 +++++++++++++++++++++++++++++------ tests/test_main_page_SMOKE.py | 2 +- tests/test_player_page.py | 4 +- 3 files changed, 72 insertions(+), 14 deletions(-) diff --git a/tests/pages/player_page.py b/tests/pages/player_page.py index 48c0770..19c1b5e 100644 --- a/tests/pages/player_page.py +++ b/tests/pages/player_page.py @@ -222,13 +222,79 @@ def click_to_play_player(self): self.find(locators.PLAY_VIDEOPLAYER).click() self.element_is_not_visible(locators.PLAY_VIDEOPLAYER, 100) self.element_is_not_visible(locators.PLAYER_LOADER, 20) + # плеер всегд активный + self.player_always_is_active() + # ---------------------------- self.click_to_skip_opening() #self.element_is_visible(locators.BOTTOM_PLAYER_CONTAINER, 20) УТОЧНИТЬ #assert self.find(locators.MINI_PLAY_BUTTON).get_attribute('aria-pressed') == "true", f'[Error] PlayerPage после нажатия на плеер не играет аниме. Стоит на паузе. Аттрибут aria_pressed = {self.find(locators.MINI_PLAY_BUTTON).get_attribute("aria-pressed")}' + def player_always_is_active(self): + script = """ +// Функция для поддержания элементов управления видимыми +function keepControlsVisible() { + // Находим основной элемент плеера + const player = document.querySelector('[data-media-player]'); + + if (!player) { + console.error('Плеер не найден'); + return; + } + + // Добавляем атрибуты, которые активируют элементы управления + player.setAttribute('data-focus', ''); + player.setAttribute('data-controls', ''); + + // Дополнительно делаем элементы видимыми через CSS + const style = document.createElement('style'); + style.innerHTML = ` + [data-media-player][data-controls] .player-module-scss-module__kFWiqG__control, + [data-media-player][data-focus] .player-module-scss-module__kFWiqG__control { + opacity: 1 !important; + visibility: visible !important; + pointer-events: auto !important; + } + + .player-module-scss-module__kFWiqG__darkness { + display: none !important; + } + `; + document.head.appendChild(style); + + // Регулярная проверка (на случай, если плеер удаляет атрибуты) + const intervalId = setInterval(() => { + if (!player.hasAttribute('data-focus')) { + player.setAttribute('data-focus', ''); + } + if (!player.hasAttribute('data-controls')) { + player.setAttribute('data-controls', ''); + } + }, 500); + + // Функция для остановки + window.stopKeepVisible = function() { + clearInterval(intervalId); + player.removeAttribute('data-focus'); + player.removeAttribute('data-controls'); + document.head.removeChild(style); + console.log('Скрипт остановлен. Элементы управления могут скрываться.'); + }; + + console.log('Элементы управления теперь всегда видны!'); + console.log('Для остановки введите: stopKeepVisible()'); +} + +// Запускаем скрипт +keepControlsVisible(); + +// Возвращаем true для подтверждения выполнения +return true; +""" + self.driver.execute_script(script) + self.element_is_visible(locators.CURRENT_TIME_PLAYER, 20) + def click_to_skip_opening(self): sleep(1) - self.activate_player_desktop() self.element_is_clickable(locators.SKIP_OPENING_PLAYER, 10) self.find(locators.SKIP_OPENING_PLAYER).click() self.element_is_not_visible(locators.SKIP_OPENING_PLAYER, 10) @@ -249,48 +315,41 @@ def activate_player_desktop(self): def click_to_setting_buttons(self): self.element_is_visible(locators.BOTTOM_PLAYER_CONTAINER, 20) self.element_is_clickable(locators.SETTINGS_BUTTON_PLAYER, 20) - self.activate_player_desktop() self.find(locators.SETTINGS_BUTTON_PLAYER).click() self.element_is_visible(locators.SETTINGS_WINDOW_CONTAINER, 20) def click_to_language_button(self): self.element_is_clickable(locators.SETTINGS_LANGUAGE_BUTTON, 20) - self.activate_player_desktop() self.find(locators.SETTINGS_LANGUAGE_BUTTON).click() self.element_is_visible(locators.SETTINGS_AFTER_CLICK_WINDOW, 20) assert self.find(locators.SETTINGS_AFTER_CLICK_H1).text == "Озвучка", f'[Error] PlayerPage После нажатия на кнопку "Озвучка" открылся не тот поп ап, либо у него неверный H1. Фактический результа = {self.find(locators.SETTINGS_LANGUAGE_H1).text}' def click_to_speed_button(self): self.element_is_clickable(locators.SETTINGS_SPEED_BUTTON, 20) - self.activate_player_desktop() self.find(locators.SETTINGS_SPEED_BUTTON).click() self.element_is_visible(locators.SETTINGS_AFTER_CLICK_WINDOW, 20) assert self.find(locators.SETTINGS_AFTER_CLICK_H1).text == "Скорость", f'[Error] PlayerPage После нажатия на кнопку "Скорость" открылся не тот поп ап, либо у него неверный H1. Фактический результа = {self.find(locators.SETTINGS_LANGUAGE_H1).text}' def click_to_quality_button(self): self.element_is_clickable(locators.SETTINGS_QUALITY_BUTTON, 20) - self.activate_player_desktop() self.find(locators.SETTINGS_QUALITY_BUTTON).click() self.element_is_visible(locators.SETTINGS_AFTER_CLICK_WINDOW, 20) assert self.find(locators.SETTINGS_AFTER_CLICK_H1).text == "Качество", f'[Error] PlayerPage После нажатия на кнопку "Качество" открылся не тот поп ап, либо у него неверный H1. Фактический результа = {self.find(locators.SETTINGS_LANGUAGE_H1).text}' def click_to_other_settings_button(self): self.element_is_clickable(locators.SETTINGS_OTHER_BUTTON, 20) - self.activate_player_desktop() self.find(locators.SETTINGS_OTHER_BUTTON).click() self.element_is_visible(locators.SETTINGS_AFTER_CLICK_WINDOW, 20) assert self.find(locators.SETTINGS_AFTER_CLICK_H1).text == "Другие настройки", f'[Error] PlayerPage После нажатия на кнопку "Качество" открылся не тот поп ап, либо у него неверный H1. Фактический результа = {self.find(locators.SETTINGS_LANGUAGE_H1).text}' def click_to_subtitle_settings_button(self): self.element_is_clickable(locators.SETTINGS_SUBTITLE_BUTTON, 20) - self.activate_player_desktop() self.find(locators.SETTINGS_SUBTITLE_BUTTON).click() self.element_is_visible(locators.SETTINGS_AFTER_CLICK_WINDOW, 20) assert self.find(locators.SETTINGS_AFTER_CLICK_H1).text == "Субтитры", f'[Error] PlayerPage После нажатия на кнопку "Субтитры" открылся не тот поп ап, либо у него неверный H1. Фактический результа = {self.find(locators.SETTINGS_LANGUAGE_H1).text}' def click_to_more_volume_settings_button(self): self.element_is_clickable(locators.SETTINGS_MORE_VOLUME_BUTTON, 20) - self.activate_player_desktop() self.find(locators.SETTINGS_MORE_VOLUME_BUTTON).click() self.element_is_visible(locators.SETTINGS_AFTER_CLICK_WINDOW, 20) assert self.find(locators.SETTINGS_AFTER_CLICK_H1).text == "Усиление громкости", f'[Error] PlayerPage После нажатия на кнопку "Усиление громкости" открылся не тот поп ап, либо у него неверный H1. Фактический результа = {self.find(locators.SETTINGS_LANGUAGE_H1).text}' @@ -303,7 +362,6 @@ def change_timecode_player(self): def click_fullscreen(self): self.element_is_clickable(locators.FULLSCREEN_BUTTON, 20) - self.activate_player_desktop() self.find(locators.FULLSCREEN_BUTTON).click() assert self.find(locators.VIDEOPLAYER_CONTAINER).get_attribute('data-fullscreen') == "", f'[Error] PlayerPage после нажатия на фуллскрин button у плеер остутствует аттрибут data-fullscreen.' @@ -329,17 +387,15 @@ def activate_mobile_player(self): def click_to_play_player_mobile(self): self.check_player() self.find(locators.PLAY_VIDEOPLAYER).click() - self.activate_mobile_player() self.element_is_not_visible(locators.PLAY_VIDEOPLAYER, 20) self.element_is_clickable(locators.PLAY_BUTTON_MOBILE, 20) - self.activate_mobile_player() + self.player_always_is_active() self.find(locators.SKIP_OPENING_PLAYER).click() self.element_is_clickable(locators.PREV_EPISODE_BUTTON_MOBILE, 20) self.element_is_clickable(locators.NEXT_EPISODE_BUTTON_MOBILE, 20) def click_to_settings_button_mobile(self): self.element_is_clickable(locators.SETTINGS_BUTTON_PLAYER_MOBILE, 20) - self.activate_mobile_player() self.find(locators.SETTINGS_BUTTON_PLAYER_MOBILE).click() self.element_is_visible(locators.SETTINGS_WINDOW_CONTAINER_MOBILE, 20) diff --git a/tests/test_main_page_SMOKE.py b/tests/test_main_page_SMOKE.py index 19bb64d..0cacc78 100644 --- a/tests/test_main_page_SMOKE.py +++ b/tests/test_main_page_SMOKE.py @@ -7,7 +7,7 @@ #Проверяем карусель 'По вашим предпочтениям' -@pytest.mark.smoke +@pytest.mark.smoke_desktop @allure.feature('MainPage. Карусель "По вашим предпочтениям".') def test_back_button_invisible_default(main_page): """В дефолтном состояние кнопка "Back" не активная""" diff --git a/tests/test_player_page.py b/tests/test_player_page.py index 347c7e0..0ae5b8b 100644 --- a/tests/test_player_page.py +++ b/tests/test_player_page.py @@ -343,7 +343,9 @@ def test_quality_popup(driver): playerpage = PlayerPage(driver) playerpage.open('http://localhost:3001/player') playerpage.click_to_play_player() - playerpage.mouse_hover_to_player() + playerpage.player_always_is_active() + sleep(30) + #playerpage.mouse_hover_to_player() playerpage.click_to_setting_buttons() playerpage.click_to_quality_button()