如果使用赛普拉斯的 DOM 中不存在元素,如何处理错误



我想使用for循环动态获取文本,但在某个点上,元素可能不存在,而cypry正在试图找到元素,并抛出错误。

与selenium一样,我们本可以使用list来查找元素并对其进行处理,但在这里,柏树正试图在某个索引处查找动态元素,如果它不存在,则会抛出错误。

for(var i=1; i<40; i++){
try{
cy.get('tbody > :nth-child('+i+') > :nth-child(2)')
.then(($elem) =>{
var sum= $elem.text()
cy.log('---',sum)
})
}catch(err) {
cy.log('error')
break
}

我也尝试过使用try-catch块,但它仍然没有进入catch块

如有任何帮助,将不胜感激

假设tbody的子级是行tr和单元格td,否则您可以调整下面的代码。我将使用each()循环来执行以下操作:

cy.get('tbody > tr').each(($tr, index) => {
if ($tr.find('td').length >= 3) {
let sum = $tr.find('td').eq(2).text();
cy.log('row ' + index + ': ' + sum);
} else {
cy.log('row ' + index + ': Not found')
}
});

最新更新