【发布时间】:2021-10-05 18:31:23
【问题描述】:
我尝试编写一些代码来检查下拉菜单中选项的字母顺序。 所以我要做的是遍历下拉菜单并将选项的值添加到数组中。然后我想检查数组的值是否按字母顺序排列。到目前为止,我有这个代码:
var optionsArray = []
cy.get('#filter1 option').each(($el, index) => {
optionsArray[index] = $el.text()
})
expect(optionsArray).to.equal(optionsArray.sort())
HTML:
<select id="filter1" class="form-control abc">
<option value="" selected="selected">text1</option>
<option value="text2">text2</option>
<option value="text3">text3</option><!----></select>
问题是它在不应该的时候通过了测试。控制台中出现以下内容:expected [] to equal [] 并且 expect() 命令似乎在任何其他应该运行的命令之前运行。
如何按字母顺序对数组中的值进行排序并比较选项是否相等?
编辑: 这是有效的新代码:
var optionsArray = []
var optionsArraySorted = []
cy.get('#filter1 option').each(($el, index) => {
optionsArray.push($el.text())
optionsArraySorted.push($el.text())
})
.then(() => {
expect(optionsArray).to.deep.equal(optionsArraySorted.sort())
})
【问题讨论】:
标签: cypress