it('Can login with modal', () => {
cy.get('.menu-item')
.contains('Sign In')
.click()
cy.get('.model-wrapper').should('have.css', 'opacity', '1')
cy.get('.form-heading').should('have.text', 'Welcome Back')
cy.get('[name=email]').type(email)
cy.get('[name=password]').type(password)
cy.get('[type=submit]').click()
})
})
这是代码,单击按钮时登录后不会成功。刚进入加载状态。
我在cypress.json文件中也将chromeWebSecurity设置为false。
答案 0 :(得分:0)
最可能的原因是 indexedDb.delete 阻止了Firebase的启动/运行。此外,这不是注销的正确方法。您应该使用 firebase.auth()。logout
我建议您通过 commands.js 中的赛普拉斯命令公开登录/注销。赛普拉斯+ firebase集成如下所示
const fbConfig = {
apiKey: 'your api key',
authDomain: '<your auth>.firebaseapp.com',
databaseURL: 'https://<your db>.firebaseio.com',
projectId: 'your project id',
storageBucket: 'your bucket.appspot.com'
}
firebase.initializeApp(fbConfig)
Cypress.Commands.add('login', (email, password) => {
return firebase.auth().signInWithEmailAndPassword(email, password)
})
Cypress.Commands.add('logout', () => {
return firebase.auth().signOut()
})
在测试中,您可以将 indexedDB.delete 替换为 cy.logout()