J'ai un cas de test qui finit par rediriger vers un lien Zoom. J'essaie d'éviter que le navigateur n'affiche la boîte de dialogue "Ouvrir zoom.us" afin de pouvoir terminer le test correctement et vérifier que le navigateur essaie réellement d'ouvrir le lien Zoom sans suspendre la session du navigateur ni arrêter l'exécution de JavaScript.
J'essaie actuellement d'utiliser l'interception pour y parvenir mais cela ne fonctionne pas.
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(); } }
Il peut y avoir un problème avec l'ordre de vos commandes,
cy.intercept()
是一个事件监听器,所以它可能应该在.clickFirstJoinViaZoomButton()
défini avant de déclencher l'événement.De plus, vous mettez des guillemets autour de l'expression régulière, ce qui signifie que Cypress ne la reconnaîtra pas comme une expression régulière.
Voir URL correspondante
Veuillez essayer le code suivant :