最佳答案
我开始学 Cypress 了。我有一个4行表(带有一个可数据表类)。我可以通过这种方式验证行数:
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}
。我不知道接下来该怎么办。这似乎是一件很常见的事情。