首页 > 解决方案 > 赛普拉斯:断言文本是否在页面上被找到 X 次

问题描述

我正在为我的 JavaScript Web 应用程序编写功能测试。老实说,我没有太多使用 Cypress 编写测试的经验。我现在要测试的是,如果用户可以在页面上看到特定的文本消息 X 次。

这是我目前在测试中的断言。

cy.contains('Hello World').should('be.visible')

如您所见,我正在测试“Hello World”消息是否对用户可见。我还想测试的是,我想测试该消息是否被看到 3 次。我怎样才能做到这一点?

以下是我的虚拟 HTML。

<form>

<div>
  <div>
  <input name="email" />
  </div>
  <ul>
    <li>This is required.</li>
  </ul>
</div>
<div>
  <div>
    <input name="password" />
  </div>
  <ul>
    <li>This is required.</li>
  </ul>
</div>

</form>

标签: javascriptcypressfunctional-testing

解决方案


您可以使用each()Cypress Docs)遍历元素并检查文本并像这样检查长度。$list将包含元素的出现次数。

cy.get('ul > li').each(($ele, $list) => {
    expect($ele).to.have.text('Hello World')
}).then(($list) => {
    expect($lis).to.have.length(3)
})

推荐阅读