Test Results (5 tests)
⏱️ Duration: 41.19s
❌ Error:
mobile_page = <Page url='https://promo.com/categories/health-and-fitness?funnel=0'>
base_url = 'https://promo.com'
def test_m01_create_video_and_receive_magic_link(mobile_page: Page, base_url: str) -> None:
"""M01: Logged-in mobile user picks a video, uses it, and gets the magic-link confirmation."""
login_page = LoginPage(mobile_page)
login_page.login_directly(base_url, general_mail(), get_password())
mobile_page.goto(base_url)
mobile_page.wait_for_load_state("domcontentloaded")
_dismiss_cookies(mobile_page)
get_started = mobile_page.locator('[data-cta="ai_sub_CTA_1"]').first
get_started.wait_for(state="visible", timeout=15_000)
get_started.click()
> _select_and_use_video(mobile_page)
tests/test_mobile_view.py:182:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_mobile_view.py:158: in _select_and_use_video
search_box.wait_for(state="visible", timeout=10_000)
/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 0x7f6259840940>
cb = <function Channel.send.<locals>.<lambda> at 0x7f6258b0b5b0>
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._lo
⏱️ Duration: 35.60s
❌ Error:
page = <Page url='https://promo.com/login'>
mobile_page = <Page url='about:blank'>, base_url = 'https://promo.com'
def test_m03_shared_video_mobile_view(page: Page, mobile_page: Page, base_url: str) -> None:
"""
M03: Desktop — login, republish a video, get share link from publish page.
Mobile — open share link in iPhone 13 viewport, verify video element visible.
"""
login_page = LoginPage(page)
dashboard_page = DashboardPage(page)
publish_page = PublishPage(page)
> login_page.login_directly(base_url, general_mail(), get_password())
tests/test_mobile_view.py:200:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/login_page.py:116: in login_directly
self.page.wait_for_function(
/usr/local/lib/python3.10/dist-packages/playwright/sync_api/_generated.py:12761: in wait_for_function
self._sync(
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_page.py:1151: in wait_for_function
return await self._main_frame.wait_for_function(**locals_to_params(locals()))
/usr/local/lib/python3.10/dist-packages/playwright/_impl/_frame.py:940: in wait_for_function
await self._channel.send("waitForFunction", self._timeout, params)
/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 0x7f6259840940>
cb = <function Channel.send.<locals>.<lambda> at 0x7f6258b8f880>
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 _capture_st
📸 Failure Screenshot:
⏱️ Duration: 31.41s
❌ Error:
mobile_page = <Page url='https://promo.com/signup'>
base_url = 'https://promo.com'
def test_m05_generate_single_ai_post_mobile(mobile_page: Page, base_url: str) -> None:
"""M05: Verify mobile single AI post button for unauthenticated user (Sign up prompt),
then sign up and generate a single AI post.
"""
auto = AutopilotPage(mobile_page)
signup = SignUpPage(mobile_page)
# Part 1: verify mobile AI button prompts signup for unauthenticated user
auto.go_to_my_calendar(base_url)
mobile_page.wait_for_load_state("domcontentloaded")
_dismiss_cookies(mobile_page)
mobile_page.locator('[data-qaid="new-video-mobile-button"]').wait_for(
state="visible", timeout=15_000
)
mobile_page.locator('[data-qaid="new-video-mobile-button"]').click()
# Unauthenticated users see a Sign up CTA
mobile_page.locator('button:has-text("Sign up")').wait_for(state="visible", timeout=10_000)
# Part 2: sign up via standard /signup page
email = random_email()
> signup.create_account(base_url, email, fullname, random_password)
tests/test_mobile_view.py:304:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/sign_up_page.py:42: in create_account
self.page.goto(f"{base_url}/signup")
/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 o