首页 > 解决方案 > 赛普拉斯“get”是否按照元素出现在 HTML 文档中的顺序返回元素?

问题描述

我正在使用赛普拉斯编写 e2e 测试,我需要编写一个测试来断言前端是否正确订购了一组元素。

仅举例来说,考虑我有一个仅列出一组年龄的页面,如下所示:

<div id="list">
   <div class="age">18</div>
   <div class="age">20</div>
   <div class="age">19</div>
</div>

我想写一个测试来判断它是否是从老到老排序的。

一种方法可能是获取类为年龄的元素,并通过迭代它们来发现它是否是有序的:

cy.get(".age").then((ages) => {
  //check if elements are ordered iterating over ages array
})

但我只能保证如果ages数组的顺序与 HTML 中呈现的顺序相同,我的测试是正确的。

DOM 元素 yield by 是否cy.get()总是按照它在 HTML 文档中的确切顺序?

我在官方文档中找不到对此的任何参考

标签: javascriptdomcypresse2e-testing

解决方案


简短的回答,的。


解释:

来自get的柏树文档:

此命令的查询行为与 $(...) 在 jQuery 中的工作方式完全匹配

以及jQuery 如何按照 $() 的顺序工作的答案:

...所以最后的答案是,是的,我可以使用$('.myList li').each() 并按照它们在 DOM 中出现的顺序遍历列表项。


推荐阅读