赛普拉斯(cypress)-在使用赛普拉斯(Cypress)进行自动化时,如何绕过跨源策略?

时间:2019-02-27 12:45:49

标签: javascript automation cypress

我正在尝试使用赛普拉斯自动化Web应用程序。但是,由于需要其他来源(Iframe)的身份验证,因此无法加载该网站。有什么办法可以克服这个问题?

示例代码:

describe('Initial Cypress Tests', () => {
it('navigate to MSteams site', () => {
    cy.visit('https://teams.microsoft.com/_#/')
} )

})

1 个答案:

答案 0 :(得分:0)

不要使用cypress进行自动化,而是测试您的Web应用程序。

  

赛普拉斯不是通用自动化工具。

https://docs.cypress.io/guides/references/trade-offs.html#Permanent-trade-off)。

每个柏树测试仅限于一个超级域。赛普拉斯的家伙考虑了第三方登录和用例,其中您在其他来源进行了身份验证。您可以使用他们的“食谱”向第三方进行身份验证:https://docs.cypress.io/examples/examples/recipes.html#Single-Sign-On

有多种使用赛普拉斯测试应用程序的方法,下面是一些示例:

  
      
  • 存根OAuth提供程序并完全使用其UI绕过。您可以欺骗您的应用程序,使其相信OAuth提供程序已将其令牌传递给您的应用程序。
  •   
  • 如果必须获取真实令牌,则可以使用cy.request()并使用OAuth提供程序提供的编程API。这些API更改的频率可能较小,并且可以避免节流和A / B广告系列之类的问题。
  •   
  • 除了让您的测试代码绕过OAuth之外,您还可以向服务器寻求帮助。一个OAuth令牌可能所做的只是在您的数据库中生成一个用户。通常,OAuth仅在最初有用,并且您的服务器与客户端建立自己的会话。如果是这种情况,只需使用cy.request()即可直接从服务器获取会话并完全绕过提供程序。
  •   

https://docs.cypress.io/guides/references/best-practices.html#When-logging-in