【问题标题】:Can we use Cypress to assert that a button is actionable without clicking it我们可以使用赛普拉斯断言按钮是可操作的而不单击它吗
【发布时间】:2021-08-12 22:19:30
【问题描述】:

Cypress 的“点击”命令实际上在幕后断言了很多东西(例如,可见、启用、未覆盖)。是否有一个函数可以在不实际单击按钮的情况下断言所有这些事情?

我的用例是点击按钮时,它会重定向到外部网站,所以我不想实际点击它。

【问题讨论】:

    标签: cypress


    【解决方案1】:

    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
    • 页面在加载和安装存根时被拦截
    • 无需实际重定向即可验证调用存根的点击事件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-03
      • 1970-01-01
      • 1970-01-01
      • 2022-07-11
      • 2021-01-02
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      相关资源
      最近更新 更多