我对cypress是个新手,当使用之前的钩子转到url时,它完成了第一个it语句,然后它再次执行之前的钩子,并执行第二个it语句,一旦执行完it语句,它就应该执行之前的钩子并停止。然而,这并不是正在发生的事情,我需要帮助,请看看我做错了什么。我的代码如下:
import { expect, assert, should } from 'chai';
import LoginPage from '../page-objects/LoginPage.spec'
import BeHomePage from '../page-objects/BeHomePage.spec'
describe('create, edit, delete Survey', () => {
before(function() {
cy.visit(''); // see config json for base url
})
it('user can login to boardeffect', () => {
LoginPage.getLoginUserName().type(Cypress.env('username'));
LoginPage.getLoginUserPassword().type(Cypress.env('password'));
LoginPage.getSigninButton().click();
})
it('user can navigate to collaborate', () => {
BeHomePage.getAutoBeWorkroom().should('be.visible');
BeHomePage.getAutoBeWorkroom().click();
BeHomePage.getCollaborate().should('be.visible');
BeHomePage.getCollaborate().click();
cy.wait(10000)
})
})
{
"baseUrl": "https://automation-ozzie.boardeffect.com/login",
"defaultCommandTimeout": 15000,
"env": {
"username": "steveSystem",
"password": "Passw0rd"
}
}类BeHomePage {
getAutoBeWorkroom() {
return cy.get(':nth-child(7) > a')
}
getCollaborate(){
return cy.get('.workroom-buttons > :nth-child(4) > a')
}
getNewSurvey(){
return cy.get('btn btn-success')
}}导出默认的新BeHomePage();
如下图所示,一个( it )块中的所有代码都通过了,但如上所述,2it块中的代码失败了。
发布于 2020-09-18 21:18:02
您需要的额外步骤将在docs Cookies - Preserve Once的这一节中讨论。
Cypress自动清除每个it()之间的cookie,但如果您添加
it('user can login to boardeffect', () => {
LoginPage.getLoginUserName().type(Cypress.env('username'));
LoginPage.getLoginUserPassword().type(Cypress.env('password'));
LoginPage.getSigninButton().click();
// preserve the cookie set above for the next test
Cypress.Cookies.preserveOnce('_boardeffect_session');
})在后续it()部分中,它将保留该Cookie值。
打开浏览器开发工具,转到应用程序、cookie、https://automation-ozzie.boardeffect.com,并观察到在没有preserveOnce()的情况下Cookie值已清除。
https://stackoverflow.com/questions/63928309
复制相似问题