Cypress показывает 401 Unauthorized при посещении страницы

Cypress показывает 401 Unauthorized при посещении страницы

Я использую Cypress для тестирования некоторых веб-приложений. Большинство адресов страниц ведут себя совершенно так же, как когда я посещаю их вручную.

Однако у меня есть некоторые страницы, которые возвращают 401 - Неавторизованный, как только я захожу на них через Cypress. Эти проблемные страницы - простые страницы входа с именем пользователя и паролем, и ошибка выдается еще до того, как я начинаю заполнять поля имени пользователя и пароля.

Я уже переключался между браузерами 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')
...
})

Связанный контент