Test Results (11 tests)
⏱️ Duration: 20.24s
❌ Error:
self = <tests.test_web_render.TestWebRender object at 0x7fd9c2843f40>
login_page = <pages.login_page.LoginPage object at 0x7fd9c299bb80>
create_page = <pages.create_page.CreatePage object at 0x7fd9c299a740>
editor_page = <pages.editor_page.EditorPage object at 0x7fd9c299a980>
publish_page = <pages.publish_page.PublishPage object at 0x7fd9c299b880>
base_url = 'https://test03.testingpromo.com'
def test_w03_customize_video_and_render(
self, login_page, create_page, editor_page, publish_page, base_url
):
"""
W03 Customize a video and render it
Verifies sorting on the create page, searches for a summer template,
customises it with text/color/font/ratio/outro changes, publishes,
then returns to the editor to discard and re-publish.
"""
> login_page.login_directly(base_url, general_mail(), get_password())
tests/test_web_render.py:97:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/login_page.py:109: in login_directly
self.enter_email(email)
pages/login_page.py:73: in enter_email
self.page.locator(self.EMAIL_INPUT).fill(email)
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:18242: in fill
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:219: in fill
return await self._frame.fill(self._selector, strict=True, **params)
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:636: in fill
await self._fill(**locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:648: in _fill
await self._channel.send("fill", self._timeout, locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_connection.py:76: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <playwright._impl._connection.Connection object at 0x7fd9c28403d0>
cb =
📸 Failure Screenshot:
⏱️ Duration: 71.50s
❌ Error:
self = <tests.test_web_render.TestWebRender object at 0x7fd9c2842440>
login_page = <pages.login_page.LoginPage object at 0x7fd9c037aa10>
create_page = <pages.create_page.CreatePage object at 0x7fd9c037b550>
editor_page = <pages.editor_page.EditorPage object at 0x7fd9c037aaa0>
publish_page = <pages.publish_page.PublishPage object at 0x7fd9c037ab60>
base_url = 'https://test03.testingpromo.com'
def test_w04_custom_uploaded_assets_and_render(
self, login_page, create_page, editor_page, publish_page, base_url
):
"""
W04 Add custom uploaded assets to a video and render it
Uploads custom font, watermark, logo, and audio; adds a new video clip
from the media library; adds a photo; changes transitions; verifies
favourites; then publishes.
"""
login_page.login_directly(base_url, general_mail(), get_password())
create_page.navigate_to_create(base_url)
create_page.search_for("summer")
create_page.select_videos_from_type_dropdown()
create_page.customize_first_video()
editor_page.verify_editor_loaded()
editor_page.upload_font_and_add(font_file_path)
editor_page.upload_watermark(watermark_path)
editor_page.upload_logo(brand_logo_path)
editor_page.upload_audio_and_select(upload_audio_path)
editor_page.add_new_clip()
editor_page.go_to_media_tab()
> editor_page.select_photo_and_add()
tests/test_web_render.py:149:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/editor_page.py:990: in select_photo_and_add
photo.wait_for(state="visible", timeout=self.T_ACTION)
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:20539: in wait_for
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:748: in wait_for
await self._frame.wait_for_selector(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:3
📸 Failure Screenshot:
⏱️ Duration: 30.00s
❌ Error:
self = <tests.test_web_render.TestWebRender object at 0x7fd9c28420e0>
login_page = <pages.login_page.LoginPage object at 0x7fd9c12f9d20>
create_page = <pages.create_page.CreatePage object at 0x7fd9c0217a30>
editor_page = <pages.editor_page.EditorPage object at 0x7fd9c02154b0>
publish_page = <pages.publish_page.PublishPage object at 0x7fd9c0215090>
base_url = 'https://test03.testingpromo.com'
def test_w05_create_video_from_uploaded_video(
self, login_page, create_page, editor_page, publish_page, base_url
):
"""
W05 Create a video from uploaded video
Uploads a video file on the create page, creates a project from it,
publishes/renders, then returns to create page and deletes the upload.
"""
> login_page.login_directly(base_url, general_mail(), get_password())
tests/test_web_render.py:169:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/login_page.py:107: in login_directly
self.go_to_login_page(base_url)
pages/login_page.py:43: in go_to_login_page
self.page.goto(f"{base_url}/login", wait_until="domcontentloaded")
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:9875: in goto
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_page.py:560: in goto
return await self._main_frame.goto(**locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:156: in goto
await self._channel.send(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_connection.py:76: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <playwright._impl._connection.Connection object at 0x7fd9c28403d0>
cb = <function Channel.send.<locals>.<lambda> at 0x7fd9c0197d00>
is_internal = False, title = None
async def wrap_api_call(
self, cb: Callable[[], Any], is_internal: bool = False, title: str = None
⏱️ Duration: 30.00s
❌ Error:
self = <tests.test_web_render.TestWebRender object at 0x7fd9c2841d80>
login_page = <pages.login_page.LoginPage object at 0x7fd9c2840970>
dashboard_page = <pages.dashboard_page.DashboardPage object at 0x7fd9c04849d0>
publish_page = <pages.publish_page.PublishPage object at 0x7fd9c04854e0>
base_url = 'https://test03.testingpromo.com'
@pytest.mark.skip_smoke
def test_w18_aspect_ratio_functionalities(
self, login_page, dashboard_page, publish_page, base_url
):
"""
W18 Verify aspect ratio functionalities
Navigates to the Dashboard Published tab, republishes the first video,
then on the publish page renders every unrendered aspect ratio (each
"+" ratio button → editor → Save & Preview → wait for render → verify).
"""
> login_page.login_directly(base_url, general_mail(), get_password())
tests/test_web_render.py:192:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/login_page.py:107: in login_directly
self.go_to_login_page(base_url)
pages/login_page.py:43: in go_to_login_page
self.page.goto(f"{base_url}/login", wait_until="domcontentloaded")
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:9875: in goto
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_page.py:560: in goto
return await self._main_frame.goto(**locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:156: in goto
await self._channel.send(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_connection.py:76: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <playwright._impl._connection.Connection object at 0x7fd9c28403d0>
cb = <function Channel.send.<locals>.<lambda> at 0x7fd9bae12c20>
is_internal = False, title = None
async def wrap_api_call(
self, cb: Callable[[], Any], is_interna
⏱️ Duration: 30.01s
❌ Error:
self = <tests.test_web_render.TestWebRender object at 0x7fd9c2841a20>
login_page = <pages.login_page.LoginPage object at 0x7fd9bae211e0>
create_page = <pages.create_page.CreatePage object at 0x7fd9bae20b20>
editor_page = <pages.editor_page.EditorPage object at 0x7fd9bae20eb0>
publish_page = <pages.publish_page.PublishPage object at 0x7fd9bae21690>
base_url = 'https://test03.testingpromo.com'
@pytest.mark.skip_smoke
def test_w16_audio_filters_and_render_with_changed_music(
self, login_page, create_page, editor_page, publish_page, base_url
):
"""
W16 Verify audio filters and render a video with changed music
Opens the music library in the editor, tests Genre/Mood/Instrument
filters, selects a track from the library, then publishes and renders.
"""
> login_page.login_directly(base_url, general_mail(), get_password())
tests/test_web_render.py:209:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/login_page.py:107: in login_directly
self.go_to_login_page(base_url)
pages/login_page.py:43: in go_to_login_page
self.page.goto(f"{base_url}/login", wait_until="domcontentloaded")
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:9875: in goto
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_page.py:560: in goto
return await self._main_frame.goto(**locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:156: in goto
await self._channel.send(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_connection.py:76: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <playwright._impl._connection.Connection object at 0x7fd9c28403d0>
cb = <function Channel.send.<locals>.<lambda> at 0x7fd9c048c700>
is_internal = False, title = None
async def wrap_api_call(
self, cb: Ca
⏱️ Duration: 20.16s
❌ Error:
self = <tests.test_web_render.TestWebRender object at 0x7fd9c2841360>
login_page = <pages.login_page.LoginPage object at 0x7fd9c009a800>
create_page = <pages.create_page.CreatePage object at 0x7fd9c009ba90>
editor_page = <pages.editor_page.EditorPage object at 0x7fd9c009b550>
publish_page = <pages.publish_page.PublishPage object at 0x7fd9c0099240>
dashboard_page = <pages.dashboard_page.DashboardPage object at 0x7fd9c009a980>
base_url = 'https://test03.testingpromo.com'
def test_w17_edit_published_video_from_dashboard(
self, login_page, create_page, editor_page, publish_page, dashboard_page, base_url
):
"""
W17 Edit published video starting from Dashboard
Creates and renders a video, downloads it in HD, then navigates to the
published dashboard, re-opens the video in the editor, verifies the
editor is in 'published edit' mode (Save & Publish button, no ratio toolbar),
adds a new media clip, and re-publishes.
"""
> login_page.login_directly(base_url, general_mail(), get_password())
tests/test_web_render.py:249:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/login_page.py:109: in login_directly
self.enter_email(email)
pages/login_page.py:73: in enter_email
self.page.locator(self.EMAIL_INPUT).fill(email)
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:18242: in fill
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:219: in fill
return await self._frame.fill(self._selector, strict=True, **params)
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:636: in fill
await self._fill(**locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:648: in _fill
await self._channel.send("fill", self._timeout, locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_connection.py:76: in send
return awai
📸 Failure Screenshot:
⏱️ Duration: 20.16s
❌ Error:
self = <tests.test_web_render.TestWebRender object at 0x7fd9c2841000>
login_page = <pages.login_page.LoginPage object at 0x7fd9c299b250>
create_page = <pages.create_page.CreatePage object at 0x7fd9c2999780>
editor_page = <pages.editor_page.EditorPage object at 0x7fd9c2999750>
publish_page = <pages.publish_page.PublishPage object at 0x7fd9c299ad40>
publisher_page = <pages.publisher_page.PublisherPage object at 0x7fd9c299bb20>
planner_page = <pages.planner_page.PlannerPage object at 0x7fd9c2999210>
base_url = 'https://test03.testingpromo.com'
def test_w24_verify_all_players(
self, login_page, create_page, editor_page, publish_page, publisher_page, planner_page, base_url
):
"""
W24 Verify all players
Creates and renders a video, verifies the player on the publish page,
schedules to Facebook via the Publisher (verifies player in composer),
publishes the post, navigates to the Planner and verifies the player there.
"""
> login_page.login_directly(base_url, general_mail(), get_password())
tests/test_web_render.py:279:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/login_page.py:109: in login_directly
self.enter_email(email)
pages/login_page.py:73: in enter_email
self.page.locator(self.EMAIL_INPUT).fill(email)
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:18242: in fill
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:219: in fill
return await self._frame.fill(self._selector, strict=True, **params)
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:636: in fill
await self._fill(**locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:648: in _fill
await self._channel.send("fill", self._timeout, locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_connection.py:76: in send
return await sel
📸 Failure Screenshot:
⏱️ Duration: 20.17s
❌ Error:
self = <tests.test_web_render.TestWebRender object at 0x7fd9c2841c00>
login_page = <pages.login_page.LoginPage object at 0x7fd9c03a35b0>
create_page = <pages.create_page.CreatePage object at 0x7fd9c03a2bc0>
editor_page = <pages.editor_page.EditorPage object at 0x7fd9c03a3e20>
publish_page = <pages.publish_page.PublishPage object at 0x7fd9c03a3970>
base_url = 'https://test03.testingpromo.com'
def test_w30_create_video_from_photo(
self, login_page, create_page, editor_page, publish_page, base_url
):
"""
W30 Create a video from a photo
Switches the create-page library to Photos, adds the first photo result
to a new project, edits it on the timeline (zoom), publishes and verifies
the render.
"""
> login_page.login_directly(base_url, general_mail(), get_password())
tests/test_web_render.py:313:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/login_page.py:109: in login_directly
self.enter_email(email)
pages/login_page.py:73: in enter_email
self.page.locator(self.EMAIL_INPUT).fill(email)
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:18242: in fill
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:219: in fill
return await self._frame.fill(self._selector, strict=True, **params)
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:636: in fill
await self._fill(**locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:648: in _fill
await self._channel.send("fill", self._timeout, locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_connection.py:76: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <playwright._impl._connection.Connection object at 0x7fd9c28403d0>
cb = <function Channel.send.<locals>.<lamb
📸 Failure Screenshot:
⏱️ Duration: 20.22s
❌ Error:
self = <tests.test_web_render.TestWebRender object at 0x7fd9c2840dc0>
login_page = <pages.login_page.LoginPage object at 0x7fd9c02154b0>
create_page = <pages.create_page.CreatePage object at 0x7fd9c0215ae0>
editor_page = <pages.editor_page.EditorPage object at 0x7fd9c02149a0>
publish_page = <pages.publish_page.PublishPage object at 0x7fd9c02148b0>
base_url = 'https://test03.testingpromo.com', resolution = 'hd'
@pytest.mark.parametrize("resolution", ["hd", "full_hd", "streaming_full_hd"])
def test_w29_download_video_from_publish_page(
self, login_page, create_page, editor_page, publish_page, base_url, resolution
):
"""
W29 Download a video from the publish page
Login, create a short video from "summer" search, publish it, then download
in the specified resolution and verify the download event fires.
"""
> login_page.login_directly(base_url, general_mail(), get_password())
tests/test_web_render.py:334:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/login_page.py:109: in login_directly
self.enter_email(email)
pages/login_page.py:73: in enter_email
self.page.locator(self.EMAIL_INPUT).fill(email)
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:18242: in fill
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:219: in fill
return await self._frame.fill(self._selector, strict=True, **params)
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:636: in fill
await self._fill(**locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:648: in _fill
await self._channel.send("fill", self._timeout, locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_connection.py:76: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self =
📸 Failure Screenshot:
⏱️ Duration: 20.16s
❌ Error:
self = <tests.test_web_render.TestWebRender object at 0x7fd9c2840c40>
login_page = <pages.login_page.LoginPage object at 0x7fd9bada99c0>
create_page = <pages.create_page.CreatePage object at 0x7fd9bada8f10>
editor_page = <pages.editor_page.EditorPage object at 0x7fd9badab400>
publish_page = <pages.publish_page.PublishPage object at 0x7fd9badab0a0>
base_url = 'https://test03.testingpromo.com', resolution = 'full_hd'
@pytest.mark.parametrize("resolution", ["hd", "full_hd", "streaming_full_hd"])
def test_w29_download_video_from_publish_page(
self, login_page, create_page, editor_page, publish_page, base_url, resolution
):
"""
W29 Download a video from the publish page
Login, create a short video from "summer" search, publish it, then download
in the specified resolution and verify the download event fires.
"""
> login_page.login_directly(base_url, general_mail(), get_password())
tests/test_web_render.py:334:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/login_page.py:109: in login_directly
self.enter_email(email)
pages/login_page.py:73: in enter_email
self.page.locator(self.EMAIL_INPUT).fill(email)
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:18242: in fill
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:219: in fill
return await self._frame.fill(self._selector, strict=True, **params)
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:636: in fill
await self._fill(**locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:648: in _fill
await self._channel.send("fill", self._timeout, locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_connection.py:76: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
se
📸 Failure Screenshot:
⏱️ Duration: 20.21s
❌ Error:
self = <tests.test_web_render.TestWebRender object at 0x7fd9c2840a90>
login_page = <pages.login_page.LoginPage object at 0x7fd9c0486650>
create_page = <pages.create_page.CreatePage object at 0x7fd9c0484940>
editor_page = <pages.editor_page.EditorPage object at 0x7fd9c04858d0>
publish_page = <pages.publish_page.PublishPage object at 0x7fd9c0484ca0>
base_url = 'https://test03.testingpromo.com', resolution = 'streaming_full_hd'
@pytest.mark.parametrize("resolution", ["hd", "full_hd", "streaming_full_hd"])
def test_w29_download_video_from_publish_page(
self, login_page, create_page, editor_page, publish_page, base_url, resolution
):
"""
W29 Download a video from the publish page
Login, create a short video from "summer" search, publish it, then download
in the specified resolution and verify the download event fires.
"""
> login_page.login_directly(base_url, general_mail(), get_password())
tests/test_web_render.py:334:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/login_page.py:109: in login_directly
self.enter_email(email)
pages/login_page.py:73: in enter_email
self.page.locator(self.EMAIL_INPUT).fill(email)
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:18242: in fill
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:219: in fill
return await self._frame.fill(self._selector, strict=True, **params)
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:636: in fill
await self._fill(**locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:648: in _fill
await self._channel.send("fill", self._timeout, locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_connection.py:76: in send
return await self._connection.wrap_api_call(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
📸 Failure Screenshot: