【发布时间】:2021-01-19 09:17:25
【问题描述】:
我正在使用 Cypress 为使用 Angular 和 Angular Material 实现的应用程序实现一些测试。
对于我的某些屏幕,我有一些带有日期选择器的表单,我想在我的测试中使用选择器来填充这些字段,而不是使用赛普拉斯的 type 方法。
所以我需要让事情变得通用:
- 打开选择器(利用 Cypress 的
click方法很简单) - 选择正确的月份(所以我必须迭代几个月,直到找到正确的月份)
- 选择正确的日期(我认为利用 Cypress 的
click方法也很简单) - 将所有这些处理定义为命令或在测试中的多个部分使用的东西
所以我的问题是:
- 如何在 Cypress 中实现
while? - 如何在 Cypress 测试中以最佳方式与 Angular Material Datepicker 交互?
- 什么是赛普拉斯最好的通用东西(命令)?
非常感谢您的帮助, 蒂埃里
【问题讨论】:
-
while 的实现方法 - 理论上你应该知道当前状态和新状态,所以 while 不是必须的。例如,当前月份是 1 月,而您想测试移动到 6 月,即正确点击 5 次。
-
如何与 Angular Material Datepicker 交互 - 用户与它交互的方式,直接点击
cy.contains('.mat-calendar-body-cell-content', targetDate)或cy.type({rightarrow})或两者都取决于你有多挑剔想成为。但是你在测试 Datepicker 本身吗?为什么不直接输入日期? -
@AloysiusParker 感谢您的回答!单击该字段时,应用程序会直接打开选择器。这就是我想通过选择器模拟日期选择的原因。
-
@AloysiusParker “你应该知道当前状态和新状态”是什么意思?我的意思是这如何让我们不使用循环......
标签: angular angular-material cypress