【发布时间】:2020-10-01 22:10:17
【问题描述】:
我有以下测试,用 Cypress 编写。我在前端使用带有 SSR 支持的 VueJS。 我的应用是一个 SPA,我正在测试用户点击菜单。
before(() => {
// mock data etc.
});
it('should check if component render properly without ssr', () => {
cy.visit('url');
cy.wait(1000);
cy.get('.menuElement').click();
cy.get('.something').should($something => {
expect($something).to.have.length(10);
});
});
根据赛普拉斯的最佳实践,我不应该以这种形式使用 cy.wait。 但问题是;没有等待,测试将失败。我尝试使用:
-
{ timeout: 10000 }作为 cy.get 和 cy.visit 中的参数 - 添加了类似
.should('be.visible');的内容(等待何时可见) - 添加了
cy.wait("@abc")的路由
但以上都不适合我。
请提出解决方案。我应该怎么做才能在我的情况下一切正常?
【问题讨论】:
-
请说明究竟是什么失败了。渲染要检查的元素时是否涉及任何 Ajax 调用?
-
@viam0Zah 在点击后完全没有找到这个元素。只点击是不行的。它开始像以前一样工作
cy.wait (1000);。 -
我会补充一点,页面渲染正确,所有菜单元素都是可见的。
-
当您观看测试运行程序时,您是否看到 Cypress 正在尝试获取
.menuElement但随后超时? -
完全正确:“AssertionError:重试超时:应找到元素...”
标签: javascript testing cypress browser-testing