Test Results (5 tests)
⏱️ Duration: 19.77s
❌ Error:
self = <tests.test_active_cast.TestActiveCast object at 0x7f6bb736e440>
page = <Page url='https://activecast.ai/'>, base_url = 'https://promo.com'
def test_as01_smoke_logged_in_create_page(self, page: Page, base_url: str) -> None:
"""Logged-in user on /active-cast sees header nav, curated catalog preview with category tags, recreate-btn on hover, and lands on /generate-from/."""
login_page = LoginPage(page)
login_page.login_directly(base_url, general_mail(), get_password())
login_page.assert_logged_in_as(fullname)
active_cast = ActiveCastPage(page)
active_cast.navigate_to_active_cast(base_url)
> active_cast.assert_header_nav_items()
tests/test_active_cast.py:31:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/active_cast_page.py:154: in assert_header_nav_items
self._nav_link(selector).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:394: in wait_for_selector
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 0x7f6bb736cd90>
cb = <function Channel.send.<locals>.<lambda> at 0x7f6bb6903be0>
is_internal = False, title = None
async def wrap_api_call(
self, cb: Callable[[], Any], is_internal: bool = False, title: str = None
) -> Any:
if self._api_zone.get():
return await cb()
task = asyncio.current_task(self._loop)
parsed_st = _attach_api_call_information(
📸 Failure Screenshot:
⏱️ Duration: 16.37s
❌ Error:
self = <tests.test_active_cast.TestActiveCast object at 0x7f6bb736df30>
page = <Page url='https://activecast.ai/'>, base_url = 'https://promo.com'
def test_as02_smoke_not_logged_in_showcase(self, page: Page, base_url: str) -> None:
"""Unauthenticated user sees showcase CTA, curated catalog preview with category tags, recreate-btn on hover, and lands on /generate-from/."""
active_cast = ActiveCastPage(page)
active_cast.navigate_to_active_cast(base_url)
> active_cast.assert_showcase_cta_visible()
tests/test_active_cast.py:41:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pages.active_cast_page.ActiveCastPage object at 0x7f6bb5201b40>
def assert_showcase_cta_visible(self) -> None:
> expect(self.page.locator(self.SHOWCASE_START_GENERATING)).to_be_visible(timeout=self.T_LOAD)
E AssertionError: Locator expected to be visible
E Actual value: None
E Error: element(s) not found
E Call log:
E - Expect "to_be_visible" with timeout 15000ms
E - waiting for locator("[data-qaid=\"showcase-start-generating\"]")
E
E Aria snapshot:
E - link "Skip to main content":
E - /url: "#main"
E - banner:
E - link "ActiveCast home":
E - /url: "#top"
E - navigation "Main":
E - list:
E - listitem:
E - link "Product":
E - /url: "#scene-builder"
E - listitem:
E - link "Use cases":
E - /url: "#see-possibilities"
E - listitem:
E - link "Pricing":
E - /url: https://promo.com/pricing/activecast
E - listitem:
E - link "Resources":
E - /url: "#faq"
E - link "Sign in":
E - /url: https://promo.com/login/activecast
E - link "Start creating":
E - /url: https://promo.com/activecast/create
E - main:
E
📸 Failure Screenshot:
⏱️ Duration: 19.57s
❌ Error:
self = <tests.test_active_cast.TestActiveCast object at 0x7f6bb736dbd0>
page = <Page url='https://activecast.ai/'>, base_url = 'https://promo.com'
@pytest.mark.skip_smoke
def test_as03_my_videos_action_buttons(self, page: Page, base_url: str) -> None:
"""Logged-in user navigates to My Videos, confirms at least one video exists, and hovers to reveal action buttons."""
login_page = LoginPage(page)
login_page.login_directly(base_url, general_mail(), get_password())
login_page.assert_logged_in_as(fullname)
active_cast = ActiveCastPage(page)
active_cast.navigate_to_active_cast(base_url)
> active_cast.go_to_my_videos()
tests/test_active_cast.py:56:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/active_cast_page.py:199: in go_to_my_videos
nav_my_videos.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:394: in wait_for_selector
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 0x7f6bb736cd90>
cb = <function Channel.send.<locals>.<lambda> at 0x7f6bb50b0ee0>
is_internal = False, title = None
async def wrap_api_call(
self, cb: Callable[[], Any], is_internal: bool = False, title: str = None
) -> Any:
if self._api_zone.get():
return await cb()
task = asyncio.current_task(self._loop)
parsed_st = _attach_api_call_information(
getattr(task, "__pw_stack__", None)
📸 Failure Screenshot:
⏱️ Duration: 19.44s
❌ Error:
self = <tests.test_active_cast.TestActiveCast object at 0x7f6bb736d030>
page = <Page url='https://activecast.ai/'>, base_url = 'https://promo.com'
@pytest.mark.skip_smoke
def test_as05_full_generation_flow(self, page: Page, base_url: str) -> None:
"""Logged-in user activates an image, configures Kling 3 Standard generation, and waits for video result."""
login_page = LoginPage(page)
login_page.login_directly(base_url, general_mail(), get_password())
login_page.assert_logged_in_as(fullname)
active_cast = ActiveCastPage(page)
active_cast.navigate_to_active_cast(base_url)
> active_cast.click_create_in_nav()
tests/test_active_cast.py:82:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/active_cast_page.py:408: in click_create_in_nav
nav_create.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:394: in wait_for_selector
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 0x7f6bb736cd90>
cb = <function Channel.send.<locals>.<lambda> at 0x7f6bb5677e20>
is_internal = False, title = None
async def wrap_api_call(
self, cb: Callable[[], Any], is_internal: bool = False, title: str = None
) -> Any:
if self._api_zone.get():
return await cb()
task = asyncio.current_task(self._loop)
parsed_st = _attach_api_call_information(
getattr(task, "__pw_stack__", None) or _cap
📸 Failure Screenshot:
⏱️ Duration: 20.09s
❌ Error:
self = <tests.test_active_cast.TestActiveCast object at 0x7f6bb736c820>
page = <Page url='https://activecast.ai/'>, base_url = 'https://promo.com'
@pytest.mark.skip_smoke
def test_as07_my_videos_duplicate_share_delete(self, page: Page, base_url: str) -> None:
"""Logged-in user opens the kebab menu on the newest completed project: shares it (copy link, open in new tab), opens Delete and cancels, then Duplicate opens the editor pre-filled.
No generation: Regenerate is never clicked (AS05 is the only generating
scenario), so no copy is created — every step runs on an existing project
and nothing is deleted.
"""
login_page = LoginPage(page)
login_page.login_directly(base_url, general_mail(), get_password())
login_page.assert_logged_in_as(fullname)
active_cast = ActiveCastPage(page)
active_cast.navigate_to_active_cast(base_url)
> active_cast.go_to_my_videos()
tests/test_active_cast.py:139:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/active_cast_page.py:199: in go_to_my_videos
nav_my_videos.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:394: in wait_for_selector
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 0x7f6bb736cd90>
cb = <function Channel.send.<locals>.<lambda> at 0x7f6bb674b010>
is_internal = False, title = None
async def wrap_api_call(
self, cb: Ca
📸 Failure Screenshot: