Cypress验证表格列字母排序断言失败问题求助
Cypress验证表格列字母排序断言失败问题求助
我最近在用Cypress做表格列的排序验证,碰到个挺奇怪的问题,想请大家帮忙分析下。
情况是这样的:我有个21行的表格,其中一列的内容是挪威语,比如Venter på søker、Ikke påbegynt这类。我想验证点击排序按钮后,这列能正确按字母升序/降序排列。
我本来的思路是:先获取这列的所有元素文本,存成一个数组;然后把这个数组复制一份并排序,最后对比原数组和排序后的数组是否一致。之前用数字类型的日期戳做类似验证是成功的,但这次字母排序就卡壳了。
我目前写的代码是这样的:
cy.get('[data-e2e-selector=tabell]').get('[data-e2e-selector=kolonne]') .then(items => { const unsortedItems = items.map((index, html) => Cypress.$(html).text()).get(); const sortedItems = unsortedItems.slice().sort() expect(unsortedItems, 'Items are sorted').to.deep.equal(sortedItems); });
结果每次断言都失败,报错信息是:
assert expected Items are sorted: to deeply equal [ Array(21) ]
我特意做了排查:
- 检查两个数组的长度,都是21,没问题;
- 对比两个数组的首尾元素,比如
unsortedItems[20]和sortedItems[20]都是Ikke påbegynt或者Venter på søker,看起来内容是一致的; - 我甚至把断言里的提示改成显示首尾元素,结果提示里的元素是相同的,但还是断言失败。
看起来切片排序后的数组内容是对的,就是deep.equal这一步过不去,有没有大佬知道问题出在哪呀?
备注:内容来源于stack exchange,提问作者kakemonsteret
相关产品推荐
相关产品推荐

