我正在使用 Cypress 测试一些 Web 应用程序。大多数页面地址的行为与我手动访问时的行为完全相同。
但是,有些页面在我通过 Cypress 访问时会立即返回 401 - Unauthorized。这些有问题的页面是带有用户名密码的简单登录页面,在我开始填写用户名/密码字段之前就抛出了错误。
我已经在 Chrome 和 Electron 浏览器之间切换了,但目前还没有成功。
有人知道我可以尝试什么来解决这个 401 问题吗?我在 Google 上找不到有关此主题的任何有用信息。
答案1
我遇到了同样的问题。这与访问之间发出的需要身份验证的请求有关POST
。Cypress 有时会在测试之间取消授权,这是一种不稳定的行为,我认为这不是故意的(有一份关于此事的报告,但没有他们需要的那么多信息,我会尽快将更多信息添加到 GitHub 线程中)。
目前,为了解决这个问题,我cy.wait()
在测试的每次访问之前都添加了一个(尤其是失败的那个)。它甚至让显示错误的页面也401
能通过。下面提供了一个简单的示例:
it('checks the xxx page', () => {
cy.wait(20000)
cy.visit('/page')
})
it('verifies xxx page is loaded', () => {
cy.wait(10000)
cy.get('element').should('contain', 'Header text')
})
您还可以通过将访问放在同一个测试中来采取(不太推荐的)解决方法:
it('checks the xxx page', () => {
cy.wait(20000)
cy.visit('/page')
cy.wait(10000)
cy.get('element').should('contain', 'Header text')
cy.visit('/anotherpage')
...
})