Как справиться с ошибкой, если элемент не существует в DOM с помощью Cypress - PullRequest
0 голосов
/ 08 мая 2020

Я хочу получить текст динамически, используя для l oop, но в определенный момент элемент может не существовать, а кипарис пытается найти элемент и выдает ошибку.

как и селен, мы могли бы использовали список, чтобы найти элемент и мог его обработать, но здесь кипарис пытается найти элемент Dynami c по некоторому индексу, и если он отсутствует, он выдает ошибку.

    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
      }

Я попытался использовать попробуйте также блок catch, но он все еще не входит в блок catch

любая помощь будет очень принята

1 Ответ

0 голосов
/ 08 мая 2020

Предполагается, что дочерние элементы tbody являются строками tr и ячейками td, в противном случае вы можете адаптировать мой код ниже. Я бы использовал each() l oop для выполнения этого:

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')
  }
});
...