⏱️ Duration: 28.98s
❌ Error:
mobile_page = <Page url='https://test03.testingpromo.com/planner/my-calendar'>
base_url = 'https://test03.testingpromo.com'
@pytest.mark.skip_prod
def test_m02_basic_actions_mobile_user(mobile_page: Page, base_url: str) -> None:
"""M02: Hamburger nav to Planner PromoAI → pricing → signup → purchase plan → delete user."""
mobile_page.goto(base_url)
mobile_page.wait_for_load_state("domcontentloaded")
_dismiss_cookies(mobile_page)
# Open sidebar and navigate to Planner PromoAI
mobile_page.locator('span.sidebar__icon').wait_for(state="visible", timeout=15_000)
mobile_page.locator('span.sidebar__icon').click()
mobile_page.locator('a.sidebar__link.promoai').wait_for(state="visible", timeout=10_000)
mobile_page.locator('a.sidebar__link.promoai').click()
> mobile_page.locator('span.calendar-header__nav-date').wait_for(state="visible", timeout=20_000)
tests/test_mobile_view.py:93:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/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 0x7f79234848b0>
cb = <function Channel.send.<locals>.<lambda> at 0x7f79229b2b90>
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()
⏱️ Duration: 28.67s
❌ Error:
mobile_page = <Page url='https://test03.testingpromo.com/planner/promoai?term=promoai.io&detect=true&utm_content=home_page_generate&generation_source=Homepage'>
base_url = 'https://test03.testingpromo.com'
@pytest.mark.skip_prod
def test_m04_new_user_generates_ai_posts_mobile(mobile_page: Page, base_url: str) -> None:
"""M04: Homepage AI input → set 14 posts × 2 batches → signup → skip tutorial → planner."""
main = MainPage(mobile_page)
signup = SignUpPage(mobile_page)
auto = AutopilotPage(mobile_page)
# ---- Batch 1: provide URL, set 14 posts, sign up, skip tutorial ----
main.go_to_homepage_with_tid(base_url, "200220240")
_dismiss_cookies(mobile_page)
main.provide_autopilot_input(sample_ai_website)
# Post-count wizard appears
> auto.click_generate_ai_posts_button()
tests/test_mobile_view.py:229:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/autopilot_page.py:1196: in click_generate_ai_posts_button
btn.click()
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:17876: in click
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_locator.py:165: in click
return await self._frame._click(self._selector, strict=True, **params)
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:593: in _click
await self._channel.send("click", 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 0x7f79234848b0>
cb = <function Channel.send.<locals>.<lambda> at 0x7f79228fa8c0>
is_internal = False, title = None
async def wrap_api_call(
self, cb: Callable[[], Any], is_internal: bool = False, title: str = None
)