【发布时间】:2019-03-21 15:00:49
【问题描述】:
当我为我的 Angular 应用程序编写 Cypress e2e 测试时,我经常使用这样的 visit() 命令:
.visit('/foo/bar')
这样就完成了工作,即 Cypress 导航到 /foo/bar,但整个应用程序会重新加载。这非常很慢,并且不能模仿实际的用户行为。
是否可以在不重新加载整个页面的情况下导航/访问 Angular 应用程序?
我试过了:
cy.window().then((win) => {
win.history.pushState({}, '', '/foo/bar')
})
但 Angular 对此没有反应。
【问题讨论】:
-
有一篇博客文章解释了如何与 Cypress 的 AngularJS 进行交互:cypress.io/blog/2017/11/15/… 适用于 1.x,但可能有些概念仍然相关。
-
一种解决方法是实际单击菜单中的导航按钮。
-
嗨@totymedli - 确保单击按钮是一种解决方法,但对我的团队用例来说不是很好。我用我们现在使用的解决方案添加了一个答案。
标签: angular angular-routing cypress