gpt4 book ai didi

javascript - Cypress - 如何从网站注销

转载 作者:行者123 更新时间:2023-11-28 20:21:40 29 4
gpt4 key购买 nike

如果您已登录,在 Cypress 中是否有可能从页面注销?或者检查我是否登录?

我的问题是,如果我在浏览器中通过一个人运行测试,那么 Cypress 总是需要登录。但是如果我从 cmd 启动它,它只需要在第一个测试中登录,但在下一个测试中你已经已登录。

// Visit the site
cy.visit(
"https://zeteodemo.uat.creasoft.cz/login?ReturnUrl=%2fVehicleInsuranceV2%2fCompare%3fOsobniCislo1%3d1%26ProductsFilter%3dAXA-ONLINE"
);

// Enter username
cy.get(".login__username")
.type("tester")
.should("have.value", "tester");

// Enter password
cy.get(".login__password")
.type("1")
.should("have.value", "1");

// Click the login button
cy.get(".button-login").click();

最佳答案

我已经为多个环境运行了 Cypress 测试,其中一个环境存在登录状态问题。删除 cookie 有时会有所帮助,但并非总是如此。因此,为了保持测试稳定,我决定创建一个 if 语句(这本身并不是最佳实践)以尽快进入已知的应用程序状态。

我所做的是在每个可以使用登录的 beforeEach() 中使用下面的自定义命令:

Cypress.Commands.add('login', function () {
cy.get('body').then($body => {
if ($body.find('.user-profile-name').length === 1) {
cy.log('Already logged in')
} else {
cy.get('.login-button').click()
}
})
})

所做的是检查浏览器是否已经登录,因为 .user-profile-name 应该存在。如果不存在,则浏览器未登录,因此 Cypress 需要单击 .login-button 按钮。

关于javascript - Cypress - 如何从网站注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57558799/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com