我想搜索一个元素,如果找不到,再找第二个元素:
cy.get(@firstElement).or(@secondElement).click()
是否有一些函数可以像 ||
那样在条件中使用?
最佳答案
如果 firstElement
异步加载,OR 条件的 将不起作用。
使用命令
cy.get('firstElement, secondElement') // no retry on firstElement
它直接进入 secondElement
,即使 firstElement
仅在 10 毫秒后出现,或者正在播放动画。
所以这种技术跳过了 Cypress 重试机制,这就是为什么 Cypress 没有在文档中提及它。
当 firstElement
是异步时,我可以看到一种方法是捕获失败事件。
注意
Cypress 文档说只使用失败事件进行调试,但 Cypress 确实在他们自己的测试中使用它。
Cypress.once('fail', () => { // "once" means catch fail for next command only
console.log('Clicking secondElement')
Cypress.$('secondElement').trigger('click')
})
cy.get('firstElement', { log: false }) // retry for 'firstElement' but suppress log
.click() // never executes this if 'firstElement' fails
关于javascript - Cypress 如何在两个元素之间使用 'cy.get',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68111716/