我有一个测试用例,最终会重定向到一个Zoom链接。我试图避免浏览器弹出“打开zoom.us”对话框,以便我可以正确地完成测试,并验证浏览器确实尝试打开Zoom链接,而不会挂起浏览器会话并停止JavaScript执行。
我目前正在尝试使用intercept来实现这一点,但它没有起作用。
it.only('应该使用测试员的用户名和密码成功登录并点击加入Zoom链接', () => { LoginPage.login(credentials.tester.username, credentials.tester.password); cy.url().should('eq', `${Cypress.config().baseUrl}/myaccount`); cy.intercept({ url: /^zoomus:\/.*/ }).as('zoom') // 也尝试过 // cy.intercept(/^zoomus:\/.*/).as('zoom') MyAccount.clickFirstJoinViaZoomButton(); cy.wait("@zoom") }) export class MyAccount { static url = '/myaccount'; static navigate() { cy.visit(MyAccount.url); } static clickFirstJoinViaZoomButton() { myaccountLocators.firstJoinViaZoomButton().click(); } }
P粉7926739582024-04-05 12:52:08
可能是你的命令顺序有问题,cy.intercept()
是一个事件监听器,所以它可能应该在.clickFirstJoinViaZoomButton()
触发事件之前设置。
另外,你在正则表达式周围加了引号,这意味着Cypress不会将其识别为正则表达式。
请参阅匹配URL
请尝试以下代码:
cy.intercept(/^zoomus:\/.*/).as('zoom') MyAccount.clickFirstJoinViaZoomButton() cy.wait("@zoom")