javascript 为什么我的网页在Cypress测试结束时一直崩溃?

xjreopfe  于 2023-10-14  发布在  Java
关注(0)|答案(2)|浏览(116)

我正在使用Cypress运行测试,我发送了一封电子邮件到另一封,然后登录第二封电子邮件,看看电子邮件是否已发送。不幸的是,在下面代码的底部,Cypress中的网页变成了空白。你知道为什么吗?我能做些什么来弥补?

it('Send email', function () {
    cy.visit('https://login.yahoo.com/?.src=ym&pspid=159600001&activity=mail-direct&.lang=en-GB&.intl=uk&.done=https%3A%2F%2Fuk.mail.yahoo.com%2Fd');
    cy.get('.phone-no').type('//password here{enter}');
    cy.get('.password').type('//password here{enter}');
    Cypress.on('uncaught:exception', (err, runnable) => {
        return false
    })
    cy.get('.e_dRA').eq(0).click();
    Cypress.Commands.add('typeTab', (shiftKey, ctrlKey) => {
        cy.focused().trigger('keydown', {
            keyCode: 9,
            which: 9,
            shiftKey: shiftKey,
            ctrlKey: ctrlKey
        })
      })
    cy.get('.select-input').eq(1).type('//email here');
    cy.get('[role="textbox"]').type('Hi Second Email, the weather will be 10oc plus in the following destinations - Regards, First Email');
    cy.get('[title="Send this email"]').click();
    cy.get('[data-test-id="primary-btn"]').click();
    cy.get('._yb_1golm').click();
    cy.get('[data-soa="Sign out of all"]').click();
    cy.get('[data-redirect-params="pspid=[[pspid]]&activity=ybar-signin"]').click();
    cy.get('.pure-button').eq(1).click();
    //Crashes here

});
i2loujxw

i2loujxw1#

Cypress在社交登录方面有一些限制,如下所述git issue
如果要求是处理电子邮件,那么很少有像mailosaur这样的替代方案可以帮助您。还有一个npm插件-cypress-social-logins,它为一些提供商提供社交登录功能

neskvpey

neskvpey2#

我已经处理了很多网页崩溃时运行Cypress测试。我不知道你申请的具体情况,但我可以给你给予。这整个代码块在脆弱步骤之前应该有cy.wait(int)。我怀疑你的应用程序崩溃是因为Cypress移动得太快了。仅供参考cy.wait()的单位是毫秒。
以下是一些示例:

cy.get('.select-input').eq(1).type('//email here');
        cy.get('[role="textbox"]').type('Hi Second Email, the weather will be 10oc plus in the following destinations - Regards, First Email');
        cy.get('[title="Send this email"]').click();
        cy.get('[data-test-id="primary-btn"]').click();
        cy.get('._yb_1golm').click();
        cy.wait(300)
        cy.get('[data-soa="Sign out of all"]').click();
        cy.wait(300)
        cy.get('[data-redirect-params="pspid=[[pspid]]&activity=ybar-signin"]').click();
        cy.wait(300)
        cy.get('.pure-button').eq(1).click();

您可以将它们调整为不同的值。告诉我进展如何!

相关问题