使用 Cypress 登录 Azure 广告

Posted

技术标签:

【中文标题】使用 Cypress 登录 Azure 广告【英文标题】:Logging into Azure Ad with Cypress 【发布时间】:2021-02-25 12:51:00 【问题描述】:

我查看了赛普拉斯文档,但不是我的网址,而是 Azure 登录名,所以他们不喜欢你使用赛普拉斯,但这就是现在的工作方式。使用 AD oauth 2.0 的 Azure 管道。我已经看到了 puppeteer 的可能解决方案,但我无法在我的计算机上下载 puppetter。 Selenium 和 CodedUI 在 Microsoft Azure AD 页面上运行没有问题,但如果我运行 Cypress,它会出错。我看到一个机械摇滚乐队试图展示他们是如何做到的,但这也是围绕着 adal 的情况,不适用于我这样做。社区可以提供帮助吗?

【问题讨论】:

你可以看看这个 - mechanicalrock.github.io/2020/05/05/… 我在他的问题中提到它没有帮助。 【参考方案1】:

我通过创建以下赛普拉斯自定义命令设法解决了 Azure AD 登录问题:

Cypress.Commands.add('login', () => 
  return cy
    .request(
      method: 'POST',
      url: `https://login.microsoftonline.com/$tenantId/oauth2/token`,
      form: true,
      body: 
        grant_type: 'password',
        tenant: 'tenantId',
        client_id: 'clientId',
        client_secret: 'clientSecret',
        username: 'username',
        password: 'password',
        resource: 'clientId',
      ,
    )
    .then((response) => 
      sessionStorage.setItem('access_token', response.body.access_token);
    );
);

然后您可以在测试中使用您的自定义命令作为第一个操作,例如:

cy.login();

然后执行您的站点访问:

cy.visit()

【讨论】:

以上是关于使用 Cypress 登录 Azure 广告的主要内容,如果未能解决你的问题,请参考以下文章

Cypress.io 代码覆盖率发布到 azure devops

在 Azure Pipelines 托管 Linux 代理上运行 Cypress.io

python neo4jのDBaas“GrapheneDB”からCyp Cyp Cyp Cyp Cyp DB DB DB DB DB DB

使用 Keycloak 的 Cypress UI 自动登录失败

Cypress:在运行 cypress 时,自动重定向到登录页面

有没有办法使用 cypress/JS 以编程方式通过 Keycloak 登录应用程序?