
我正在使用 Cypress 來測試一些 Web 應用程式。大多數頁面地址的行為與我手動訪問它們時完全相同。
但是,我有一些頁面,當我透過 Cypress 存取它們時,就會返回 401 - 未經授權。這些有問題的頁面是帶有使用者名稱密碼的簡單登入頁面,在我開始填寫使用者名稱/密碼欄位之前就拋出了錯誤。
我已經在 Chrome 和 Electron 瀏覽器之間切換過,但到目前為止還沒有運氣。
有誰知道我可以嘗試什麼來克服這個 401 問題?我在谷歌上找不到關於這個主題的任何有用的信息。
答案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')
...
})