【问题标题】:Cypress cy.visit results in 401 unauthorizedCypress cy.visit 导致 401 未授权
【发布时间】:2019-06-26 08:22:17
【问题描述】:

我在所有指向 https:// 地址的 cy.visits 上都收到 401 - 未经授权。

我尝试使用以下方法禁用 cypress.json 中的网络安全:

{
  "chromeWebSecurity": false
}

但这没有任何效果。

我的代理配置正确。

非 https:// 地址可以正常工作。 通过 Chrome 手动访问页面时,它们工作得很好。 我曾尝试将 Cypress 切换到 Electron,但这并没有什么不同。

任何帮助将不胜感激。

【问题讨论】:

  • 您使用的是哪个 Chrome 版本?你检查过这些吗? github.com/cypress-io/cypress/issues/1951 , github.com/cypress-io/cypress/issues/2001
  • 我使用的是 Chrome 75 和 Cypress 3.3.1。已经修复了这个问题。
  • 我发现问题是由于这里的 Kerberos 环境引起的。这需要在 Cypress 中编写额外的脚本,才能正确处理 cookie 和 auth 标头。一旦我解决了它,我将在这里分享我的解决方案。

标签: cypress


【解决方案1】:

赛普拉斯对 Kerberos 代理身份验证的支持是一个未解决的问题:https://github.com/cypress-io/cypress/issues/4667

但是,您现在可以通过设置本地代理将 Kerberos 与 Cypress 一起使用。 Cypress 将使用纯 HTTP 访问此代理,代理将完成 Kerberos 身份验证过程并将内容来回传递给您的代理服务器。

  1. 根据自述文件设置https://github.com/genotrance/px
  2. 通过px 使用的默认端口运行赛普拉斯:
    npm i -g cross-env
    cross-env HTTP_PROXY=http://127.0.0.1:3128 cypress open
    

有关赛普拉斯代理配置的更多信息,请参阅the documentation

【讨论】:

    【解决方案2】:

    我相信您在这里遇到的问题是您的网络应用程序具有活动目录身份验证,这就是您获得 401 的原因。要对此进行测试,请尝试在 Chrome 隐身窗口中打开该应用程序,然后如果系统提示您输入凭据,就是这种情况。

    这是我们正在寻找解决此问题的一种解决方案:

    https://www.npmjs.com/package/cypress-ntlm-auth

    您需要在测试套件中设置一些配置才能使其正常工作,但它的文档记录得很好。

    【讨论】:

      猜你喜欢
      • 2018-11-28
      • 2020-01-16
      • 2015-10-13
      • 1970-01-01
      • 2015-12-25
      • 1970-01-01
      • 2019-11-02
      • 1970-01-01
      • 2011-03-06
      相关资源
      最近更新 更多