簡體   English   中英

Azure B2C用cypress登錄

[英]Azure B2C login with cypress

我有一個 angular 項目,我嘗試使用 cypress 測試 azure b2c 登錄。 我是新手,我嘗試過這種方式:

 describe('login', () => {
    beforeEach(() => cy.clearCookies());
    it('get the access token test', () => {
       cy.visit('/');
       cy.get('button').click();
       cy.get('input#email').type('myemail@gmail.com');
       cy.get('input#password').type('mypassword');
       cy.get('button#next').click();
    });
 });

它可以工作,但是當我完成登錄時出現錯誤:

{
  "type" : "https://www.jhipster.tech/problem/problem-with-message",
  "title" : "Unauthorized",
  "status" : 401,
  "detail" : "Not Authenticated",
  "path" : "/login",
  "message" : "error.http.401"
}

如果我刷新瀏覽器,測試會正常工作,並且我會按預期登陸主頁。 但我不明白為什么我第一次出現這個錯誤。

此問題僅在 cypress 中可見。 如果我使用所有其他瀏覽器,我看不到這個問題。

• 第一次嘗試登錄時出現錯誤,因為您沒有提及 Azure AD 平台的確切鏈接或登錄 URI。 此外,由於您在 cypress 命令中提到了 'cy.visit('/')',這意味着在 Azure AD 租戶中配置的默認 URI 鏈接。 由於您遇到錯誤,第一次解決此問題需要一些時間。

• 此外,您的網頁刷新超時也可能很低,在此期間無法重定向到 Azure AD 租戶及其在后台的解析。 您需要在 cypress 腳本中輸入以下命令來解決此問題,而不是當前的“cy.visit”:-

 ‘ it('get the access token test', onBeforeLoad: (contentWindow) => {
     cy.visit(‘https://login.microsoftonline.com/oauth2/v2.0/’);
      cy.wait(2000) ’

上述命令將確保正確的重定向和等待超時約 2000 毫秒,即 2 秒,以便您的頁面在第一次正確加載。

請找到以下鏈接供您參考:-

https://docs.cypress.io/api/commands/visit#Provide-an-onBeforeLoad-callback-function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM