Javascript 取决于元素存在性的cypress条件代码逻辑
我想根据元素的存在执行一些操作。比如:Javascript 取决于元素存在性的cypress条件代码逻辑,javascript,jquery,automation,cypress,exists,Javascript,Jquery,Automation,Cypress,Exists,我想根据元素的存在执行一些操作。比如: cy.get(A).should('not.exist').then(()=>{ //action 1 }) cy.get(A).should('exist').then(()=>{ //action 2 }) 我需要执行这两项检查 问题是我正在使用“应该”断言来执行此检查。如果元素存在,那么整个测试用例都会失败,我甚至没有进行第二次检查以执行操作2 cypress中是否有类似于软断言的东西,让我只检查元素是否存在,如果不存在,则不会使测试用
cy.get(A).should('not.exist').then(()=>{ //action 1 })
cy.get(A).should('exist').then(()=>{ //action 2 })
我需要执行这两项检查
问题是我正在使用“应该”断言来执行此检查。如果元素存在,那么整个测试用例都会失败,我甚至没有进行第二次检查以执行操作2
cypress中是否有类似于软断言的东西,让我只检查元素是否存在,如果不存在,则不会使测试用例失败???请参阅 您不能在DOM上执行条件测试,除非您:
- 没有异步JavaScript的服务器端呈现
- 使用只进行同步渲染的客户端JavaScript
const exists = Cypress.$.('A').length > 0;
if (exists) {
//action 1
} else {
//action 2
}
但如果异步加载“A”,上述操作将失败
一种方法是检查与“A”一起异步加载的另一个元素“B”
cy.get('B') // 'B' is definitely loaded
.then(() => {
// since 'B' is present, we can test for 'A'
const exists = Cypress.$.('A').length > 0;
if (exists) {
//action 1
} else {
//action 2
}
})
请参阅 您不能在DOM上执行条件测试,除非您:
- 没有异步JavaScript的服务器端呈现
- 使用只进行同步渲染的客户端JavaScript
const exists = Cypress.$.('A').length > 0;
if (exists) {
//action 1
} else {
//action 2
}
但如果异步加载“A”,上述操作将失败
一种方法是检查与“A”一起异步加载的另一个元素“B”
cy.get('B') // 'B' is definitely loaded
.then(() => {
// since 'B' is present, we can test for 'A'
const exists = Cypress.$.('A').length > 0;
if (exists) {
//action 1
} else {
//action 2
}
})