【发布时间】:2021-08-12 22:19:30
【问题描述】:
Cypress 的“点击”命令实际上在幕后断言了很多东西(例如,可见、启用、未覆盖)。是否有一个函数可以在不实际单击按钮的情况下断言所有这些事情?
我的用例是点击按钮时,它会重定向到外部网站,所以我不想实际点击它。
【问题讨论】:
标签: cypress
Cypress 的“点击”命令实际上在幕后断言了很多东西(例如,可见、启用、未覆盖)。是否有一个函数可以在不实际单击按钮的情况下断言所有这些事情?
我的用例是点击按钮时,它会重定向到外部网站,所以我不想实际点击它。
【问题讨论】:
标签: cypress
Deal with window replace 显示了一种存根重定向的方法。
您是否可以使用它取决于您的重定向是如何发生的。我知道还有几种方法,它们也可以被存根。
it('replaces', () => {
cy.on('window:before:load', (win) => {
win.__location = {
replace: cy.stub().as('replace')
}
})
cy.intercept('GET', 'index.html', (req) => {
req.continue(res => {
res.body = res.body.replaceAll(
'window.location.replace', 'window.__location.replace')
})
}).as('index')
cy.visit('index.html')
cy.wait('@index')
cy.contains('h1', 'First page')
cy.get('@replace').should('have.been.calledOnceWith', 'https://www.cypress.io')
})
replace() 函数上使用存根创建了一个假的window.location
【讨论】: