Cypress はページにアクセスすると 401 Unauthorized と表示されます

Cypress はページにアクセスすると 401 Unauthorized と表示されます

私は 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')
...
})

関連情報