如何在柏树中制作可链接的命令?
How to make a chainable command in cypress?
假设我有一个可变的用户名。
现在,我的可链接函数想要检查用户名是否为空。
之前:
if(username !== "") {
cy.get('#username').type(username)
}
之后(预期):
cy.get('#username').type(username).ifNotEmpty() //ifNotEmpty will be my chainable func
所以我的问题是这可能吗?如果是,那又如何?
您可以添加自定义 Cypress 命令来实现此目的。这些被称为 child commands
。 More information here.
Cypress.Commands.add('ifNotEmpty', { prevSubject: true }, (subject) => {
// code
})
您可能只想做一个 .type()
变体
Cypress.Commands.add('typeIfNotEmpty', { prevSubject: true }, (subject, textToType) => {
if (textToType) {
cy.wrap(subject).type(textToType)
}
return subject // allow further chaining
})
cy.get('#username')
.typeIfNotEmpty(username)
.should(...) // some assertion on '#username' element
假设我有一个可变的用户名。
现在,我的可链接函数想要检查用户名是否为空。
之前:
if(username !== "") {
cy.get('#username').type(username)
}
之后(预期):
cy.get('#username').type(username).ifNotEmpty() //ifNotEmpty will be my chainable func
所以我的问题是这可能吗?如果是,那又如何?
您可以添加自定义 Cypress 命令来实现此目的。这些被称为 child commands
。 More information here.
Cypress.Commands.add('ifNotEmpty', { prevSubject: true }, (subject) => {
// code
})
您可能只想做一个 .type()
变体
Cypress.Commands.add('typeIfNotEmpty', { prevSubject: true }, (subject, textToType) => {
if (textToType) {
cy.wrap(subject).type(textToType)
}
return subject // allow further chaining
})
cy.get('#username')
.typeIfNotEmpty(username)
.should(...) // some assertion on '#username' element