Cypress 访问页面时显示 401 未经授权

Cypress 访问页面时显示 401 未经授权

我正在使用 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')
...
})

相关内容