You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 07:03:02