⏱️ Duration: 15.92s
❌ Error:
flow = Flow(plan_cta='button[data-qaid*="select-plan-ANNUAL_D2"]', monthly=False, first_offer=Offer(title='Having commitment ...es?', card=None, cards=1), second_offer=Offer(title='There’s a better way', card='.ncf-plan-card--downgrade', cards=1))
cancellation_page = <pages.cancellation_page.CancellationPage object at 0x7f7dbddb6aa0>
billing_page = <pages.billing_page.BillingPage object at 0x7f7dbe1ea200>
@pytest.mark.parametrize("flow", FLOWS, indirect=True)
def test_accept_second_offer(flow, cancellation_page, billing_page):
"""'Too expensive' → decline 1st offer → accept 2nd offer → subscription pending update."""
> _reach_second_offer(cancellation_page, flow)
tests/cancellation/test_cancellation.py:79:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/cancellation/test_cancellation.py:61: in _reach_second_offer
cancellation_page.start_cancellation(C.REASON_TOO_EXPENSIVE)
pages/cancellation_page.py:72: in start_cancellation
self.popup.get_by_text(reason, exact=True).click(timeout=self.T_LOAD)
/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 0x7f7dbf1e18d0>
cb = <function Channel.send.<locals>.<lambda> at 0x7f7dbe742320>
is_internal = False, title = None
async def wrap_api_call(
self, cb: Callable[[], Any], is_internal: bool = False, title: str
📸 Failure Screenshot: