В Cypress как подсчитать выбор предметов и получить длину?
Я начинаю изучать Cypress. У меня есть таблица 4 строк (с классом datatable). Я могу проверить количество строк следующим образом:
cy.get('.datatable').find('tr').each(function(row, i){
expect(i).to.be.lessThan(4)
})
это нормально, но это кажется неудобным, так как я просто хочу подсчитать длину и на самом деле не нужно получать доступ к материалу в строках, и я предполагаю, что быстрее сделать одну вещь, чем сделать 4 вещи.
если я регистрирую выбор (не уверен, как еще его назвать):
cy.log(cy.get('.datatable').find('tr'))
выходит как [object Object]
и я не совсем уверен как разобрать, что говорит мне, что я думаю об этом все неправильно.
если я попробую:
expect(cy.get('.datatable').find('tr')).to.have.lengthOf(4)
Я AssertionError: expected { Object (chainerId, firstCall) } to have a property 'length'
если я попробую:
expect(Cypress.$('.datatable > tr')).to.have.lengthOf(4)
Я AssertionError: expected { Object (length, prevObject, ...) } to have a length of 4 but got 0
так, по крайней мере, он имеет здесь?
если я регистрирую этот метод выбора, я получаю Object{4}
. Я не знаю, куда идти дальше. Кажется, это было бы очень распространенным явлением.
3 ответов
найдено решение, это работает, чтобы проверить количество элементов:
cy.get('.datatable').find('tr').should('have.length', 4)
это не работает с Cypress.$()
нотация.
ссылка:https://docs.cypress.io/guides/references/assertions.html#Length
С документы API cypress .should () section, С помощью функции стрелочку:
cy.get('.datatable').find('tr').should(($listOfElements) => {
expect($listOfElements).to.have.length(4)
// any other assertions, for example the below one
// expect($listOfElements).to.have.any.keys('key1', 'key2')
})
такой подход позволит вам использовать Chai BDD обозначения и утверждать более одной вещи в вашем списке элементов.
вы также можете получить длину выбор элементов через своего имущества, например:
cy.get('.datatable').find('tr').its('length').should('eq', 4)
cy.get('.datatable').find('tr').its('length').should('be.gte', 4)
кроме should('have.length', 4)