![Cypress 访问页面时显示 401 未经授权](https://linux22.com/image/1595421/Cypress%20%E8%AE%BF%E9%97%AE%E9%A1%B5%E9%9D%A2%E6%97%B6%E6%98%BE%E7%A4%BA%20401%20%E6%9C%AA%E7%BB%8F%E6%8E%88%E6%9D%83.png)
我正在使用 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')
...
})