В Cypress как подсчитать количество строк в таблице?

Я делаю тесты E2E с кипарисом. мне нужно подсчитать количество строк в таблице, которые отличаются от случая к случаю.

в обычном javascript я просто пишу это, чтобы получить общее количество строк столбца

document.getElementById('hometable').getElementsByTagName("tr").length-1

к сожалению, в кипарисе я получаю следующую ошибку:

 document.getElementById('hometable').getElementsByTagName("tr").length-1

VM298:1 Uncaught TypeError: Cannot read property 'getElementsByTagName' of null
    at <anonymous>:1:38
(anonymous) @ VM298:1

Я пытался считать так, но ничего не получилось

cy.get('hometable').find('tr').each(function(row, i){
        expect(i)
})

$Chainer {userInvocationStack: "", specWindow: Window, chainerId: "chainer99", firstCall: false, useInitialStack: false}
chainerId: "chainer99"
firstCall: false
specWindow: Window {parent: Window, opener: null, top: Window, length: 0, frames: Window, …}
useInitialStack: false
userInvocationStack: ""
__proto__: Object

я не могу понять, где он возвращает мне количество строк


person Gianmarco Gagliardi    schedule 29.09.2020    source источник
comment
Это stackoverflow.com/questions/46850694/ ответить на ваш вопрос?   -  person A J    schedule 30.09.2020


Ответы (1)


Я думаю, что ваш подход правильный, вы можете использовать each(). Есть еще один параметр, который вы можете добавить к каждому, list, и это даст вам количество строк. Вы можете проверить документ Cypress для каждого(). Убедитесь, что локатор правильный.

cy.get('#hometable > tr').each(function(row, i, list) {}).then(function(list) {
      //list will give you the count of tr
    }
person Alapan Das    schedule 30.09.2020