首页 > 解决方案 > 柏树 | 由于跨源而进行登录测试的问题

问题描述

我的公司切换到 B2C,现在登录是通过另一个网站的重定向来执行的。出于这个原因,我现在可以使用的登录测试给了我一个跨源错误。

已经尝试将 chromeWebSecurity: false 添加到 cypress.json 并且没有区别。

还尝试将其添加到 index.js :

      on('before:browser:launch', (browser = {}, launchOptions) => {
        // `args` is an array of all the arguments that will
        // be passed to browsers when it launches
        console.log(launchOptions.args) // print all current args
    
        if (browser.family === 'chromium' && browser.name !== 'electron') {
          // auto open devtools
          launchOptions.args.push('--auto-open-devtools-for-tabs')
    
          // whatever you return here becomes the launchOptions
          return launchOptions
        }
    
        if (browser.family === 'firefox') {
          // auto open devtools
          launchOptions.args.push('-devtools')
    
          return launchOptions
        }
      })

也没有任何区别。

根据我的阅读,自 2018 年以来,很多人都遇到了这个问题,而赛普拉斯似乎还没有解决这个问题。有点让我紧张,因为我已经为 cypress 编写了很多测试,所以迁移会很苛刻。

你们知道有什么解决方法吗?

这是完整的错误:

CypressError Cypress 检测到页面加载时发生了跨域错误:

阻止来源为“我的公司地址”的框架访问跨域框架。

在页面加载之前,您已绑定到源策略:

我公司的地址

当您的应用程序导航到与上述源策略不匹配的新 URL 时,会发生跨源错误。

如果“协议”、“端口”(如果指定)和/或“主机”(除非是同一个超级域)不同,则新 URL 与源策略不匹配。

Cypress 不允许您在单个测试中导航到不同的源 URL。

您可能需要重组一些测试代码以避免此问题。

或者,您也可以在基于 Chromium 的浏览器中禁用 Chrome 网络安全,这将通过在 cypress.json 中设置 { chromeWebSecurity: false } 来关闭此限制。了解更多

标签: google-chromeurldnscypress

解决方案


推荐阅读