⏱️ Duration: 25.41s
❌ Error:
self = <tests.test_active_cast.TestActiveCast object at 0x7f48ede69180>
page = <Page url='https://promo.com/activecast/generate?imageId=2803807459&imageSource=shutterstock&imageTitle=Blonde+woman+w...Fblonde-woman-wearing-ribbed-top-600nw-2803807459.jpg&term=happy&searchType=category&searchTerm=happy&searchRatio=all'>
base_url = 'https://promo.com'
@pytest.mark.skip_smoke
def test_as04_generate_page_controls_after_image_activation(self, page: Page, base_url: str) -> None:
"""Logged-in user activates an image from the create grid and verifies all generator controls are visible."""
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_create(base_url)
active_cast.assert_grid_has_at_least_20_items()
active_cast.hover_second_item_and_assert_activate_btn()
> active_cast.activate_image_and_assert_generate_page()
tests/test_active_cast.py:70:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pages.active_cast_page.ActiveCastPage object at 0x7f48ede83a30>
def activate_image_and_assert_generate_page(self) -> None:
"""Clicks activate-image, then asserts URL, all generator controls visible, and crop/link controls absent."""
with self.page.expect_navigation(timeout=self.T_NETWORK):
self.page.locator(self.ACTIVATE_IMAGE_BTN).first.click(force=True)
# "networkidle" never resolves on this page (continuous analytics/chat-widget
# traffic), so rely on domcontentloaded plus the action-based waits below.
self.page.wait_for_load_state("domcontentloaded")
# Prod resolves the hyphenated "/active-cast" nav path to the canonical,
# hyphen-less "/activecast" slug (confirmed live on promo.com — this isn't
# a redirect bug, both slug forms are real
📸 Failure Screenshot:
⏱️ Duration: 19.57s
❌ Error:
self = <tests.test_active_cast.TestActiveCast object at 0x7f48ede68a30>
page = <Page url='https://promo.com/activecast/generate?imageId=2803807459&imageSource=shutterstock&imageTitle=Blonde+woman+w...Fblonde-woman-wearing-ribbed-top-600nw-2803807459.jpg&term=happy&searchType=category&searchTerm=happy&searchRatio=all'>
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()
active_cast.assert_grid_has_at_least_20_items()
active_cast.hover_first_item_and_click_activate()
> active_cast.select_second_action_template()
tests/test_active_cast.py:85:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/active_cast_page.py:471: in select_second_action_template
self.page.locator(self.ACTION_TEMPLATE_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 0x7f48ede693f0>
cb = <function Cha
📸 Failure Screenshot: