Cypress条件语句未按预期工作



代码:

<ul> <li> <h1>source</h1> <label>completed</label> </li> <li> <h1>source</h1> <label>Failed</label> </li> <li> <h1>new test</h1> <label>completed</label> </li> </ul>

上下文:我在ul中有这样的代码,我有几个li元素。我需要使用Cypress编写一个if-else语句。如果li元素在h1中有文本源,而标签有文本Completed,我需要点击该元素,否则跳过。

我会尝试将li元素的内容转换为字符串,并根据以下内容执行条件语句:

cy.get('li')
.each($element => {
if($element.innerHtml().includes("source") && $element.innerHtml().includes("completed")) {
$element.click()
}
})

编辑2:如果有多个元素是有效的,并且你被困在一个循环中——递归是更好的

cy.get('li')
.then(elements => {
let i = 0
function checkElementsAdnClick(arrayOfElements) {
if (i >= arrayOfElements.length) {
return
}
cy.get(arrayOfElements[i])
.then($element => {
if ($element.html().includes("source") &&
$element.html().includes("source") &&
i < arrayOfElements.length
) {
return arrayOfElements[i].click()
} else {
i++
return checkElementsAdnClick(arrayOfElements)
}
})
}
checkElementsAdnClick(elements)
}
)

最新更新