使用 Playwright 基于 Azure AD 的 SSO

cod*_*lue 6 automated-tests browser-automation puppeteer playwright

我们如何测试具有基于 Azure AD 的身份验证的 SPA?当用户打开应用程序时,用户首先被发送到 login.microsoftonline.com,并在输入用户电子邮件后,页面重定向回应用程序主页。在这种情况下,我们如何使用 Playwright 实现自动化?

小智 1

您能否详细说明一下您正在寻找的内容?该流程应该类似于填写凭据、登录、等待您的logged_in条件,无论是设置的 cookie 还是重定向(简单的重定向很容易处理)。例如:

await Promise.all([
    page.fill('input[name="loginfmt"]', credentials.username),
    page.waitForURL(HOMEPAGE_URL),
]);
Run Code Online (Sandbox Code Playgroud)

请参阅page.waitForURL

然后,您可以执行诸如提取用户会话以供重用之类的操作,以避免在需要时再次登录:

const session = await context.storageState();
// Store them somewhere?
await cache.setCredentials(session, cacheKey);
Run Code Online (Sandbox Code Playgroud)

请参阅browserContext.storageState