我想检查第二个.item
元素是否包含一些文本
cy.get('.item').then(($items) => {
expect($items).to.have.length(2);
expect($items[1]).to.contain('Published');
});
柏树抛出错误:TypeError: obj.is is not a function
。
我也试过expect($items[1]).text.to.contain('Published');
此时间错误为 TypeError: Cannot read property 'contain' of undefined
。
由于它对$items
没有问题,您的问题在于您期望的数组$items[1]
。正如赛普拉斯所说,$items[1]是未定义的,"不是函数"错误是同一个问题,但描述:)更复杂的问题。所以赛普拉斯找不到第二个元素,因此使用数组不起作用。如果您将其更改为以下内容,它可能会通过:
cy.get('.item').then(($items) => {
expect($items).to.have.length(2);
expect($items).to.contain('Published');
});
您还可以以完全不同的方式检查特定元素:
cy.get('.item')
.eq(2)
.should('contain', 'Published')
这会导致检索第二个"项目"并检查它是否包含"已发布"。当然,您可以将 eq(( 更改为更高或更低的数字