【发布时间】:2019-07-12 00:34:12
【问题描述】:
我正在使用 Cypress 在 Angular Web 应用程序中进行 e2e 测试。当 cypress 首次打开时,它会转到 http://localhost:54401/__/#tests/integration/login.spec.ts
这会在屏幕左侧显示 cypress 测试扩展坞,在右侧显示 Web 输出。只要我的beforeEach 函数调用cy.visit(),屏幕顶部的主 url 不会更改输出,而是更改为:
http://localhost:4200/__/#tests/integration/login.spec.ts
Angular 然后接管,它找不到 __ 路由,所以页面被重定向到我的默认页面,我失去了 Cypress 停靠/测试运行器。
赛普拉斯应该只是更改加载我的应用程序的框架,而不是页面 url。正在发生的事情导致赛普拉斯操纵主浏览器 url 而不是框架 url。
如何解决此问题,以便 cypress 以框架而不是主浏览器窗口为目标?这在过去有效,最近才开始无效。我不确定这是柏树还是铬问题。我认为这可能是赛普拉斯网络安全的问题,所以我尝试在cypress.json 中设置chromeWebSecurity: false 无济于事。
https://docs.cypress.io/guides/guides/web-security.html#Disabling-Web-Security
我使用的是 cypress 3.1.5。
【问题讨论】:
-
我也有同样的问题(但 Vue 应用程序在端口 8080 上运行)。如果我切换到 Electron,测试就会运行,所以我一直在等待重新安装所有东西的时间。目前最好的猜测是由于从 chrome 自动升级。我正在使用 cypress v3.1.1、Chrome 72、Electron 59。
标签: angular google-chrome cypress