我在第一页测试了一些东西,在用例外数据填写表格后,有一个支付按钮重定向到第二页,具有完全不同的 url(支付门 Payu)。 它是这样的:
await page.goto('https:/first-page.com')
填写表格的一些步骤
await page.getByRole('button', { name: 'Pay', exact: true }).click();
await page.getByTitle('Payment_option_1').click();
最后一条指令出现了问题,因为页面 url 已更改,但 Playwright 似乎不知道这一点,它会尝试在旧 url 版本上搜索“Payment_option_1”按钮。 当我知道我将重定向到的确切 url 时会更容易,但新的 url 每次都带有不同的一次性令牌。
是否有任何解决方案可以确保 Playwright 新 url 已经到来并且它应该在新页面 url 上寻找下一个元素,而无需 page.goto('ExactTheNewURL')
您可以断言新 URL 的正则表达式:
await expect(page).toHaveURL(/.*checkout/);
所以你不需要知道它的确切部分(模式)。
参考:https://playwright.dev/docs/api/class-pageassertions#page-assertions-to-have-url