javascript - 赛普拉斯:断言文本是否在页面上被找到 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>
解决方案
您可以使用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)
})
推荐阅读
- php - 如何在woo commerce产品名称前添加产品类别?
- parsing - 迷你 SMTLIB v2 语法的 ANTLR4 解析器错误
- html - HTML 单选按钮 GroupName 属性
- reactjs - 在反应项目中无限循环运行的webpack脚本
- python - 在 Raspberry PI 上导入 Pandas 时出现“CategoricalDtype”错误
- angular - 无法获取 api 的数据
- c - 如何在c中处理字符串数组
- sql - 更新动态列,SQL
- flask - 从 swagger 传递的授权标头未正确解析丢失的 Bearer
- javascript - 如何在显示月份数据时删除特定的日期列?