Cypress条件语句未按预期工作
代码:Cypress条件语句未按预期工作,cypress,cypress-cucumber-preprocessor,Cypress,Cypress Cucumber Preprocessor,代码: 源完成源失败新测试完成 上下文:我在ul中有这样的代码,我有几个li元素。我需要用Cypress写一个if-else语句。如果li元素在h1中有文本源,label有文本已完成,我需要单击该元素,否则跳过。我将尝试将li元素的内容转换为字符串,并根据该内容执行条件语句: <ul> <li> <h1>source</h1> <label>completed</label> </li> <li>
- 源完成
- 源失败
- 新测试完成
上下文:我在ul中有这样的代码,我有几个li元素。我需要用Cypress写一个if-else语句。如果li元素在h1中有文本源,label有文本
已完成
,我需要单击该元素,否则跳过。我将尝试将li元素的内容转换为字符串,并根据该内容执行条件语句:
<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>
编辑2:如果有多个元素是有效的,并且您被困在一个循环中,那么递归更好
cy.get('li')
.each($element => {
if($element.innerHtml().includes("source") && $element.innerHtml().includes("completed")) {
$element.click()
}
})
cy.get('li'))
。然后(元素=>{
设i=0
功能检查元素单击(数组元素){
如果(i>=ArrayOfelments.length){
返回
}
cy.get(arrayofelments[i])
。然后($element=>{
如果($element.html()包括(“源”)&&
$element.html()包括(“源”)&&
i
请发布您尝试的代码片段以及您收到的错误。- 源代码已完成
- 源代码失败
- 新测试已完成
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)
}
)