cypress:期望元素包含一些文本

jr6*_*6tp 2 cypress

我想检查第二个.item元素包含一些文本

cy.get('.item').then(($items) => {
  expect($items).to.have.length(2);
  expect($items[1]).to.contain('Published');
});
Run Code Online (Sandbox Code Playgroud)

柏树抛出错误:TypeError: obj.is is not a function

我也试过expect($items[1]).text.to.contain('Published'); 这次错误是TypeError: Cannot read property 'contain' of undefined.

Mr.*_* J. 5

由于它没有问题$items,因此您的问题出在您期望的数组中$items[1]。正如赛普拉斯所说, $items[1] 是未定义的,“不是函数”错误是同样的问题,但描述更复杂:)。因此,赛普拉斯找不到第二个元素,因此无法使用数组。如果您将其更改为以下内容,它可能会通过:

cy.get('.item').then(($items) => {
  expect($items).to.have.length(2);
  expect($items).to.contain('Published');
});
Run Code Online (Sandbox Code Playgroud)

您还可以以完全不同的方式检查特定元素:

cy.get('.item')
  .eq(2)
  .should('contain', 'Published')
Run Code Online (Sandbox Code Playgroud)

这导致检索第二个“项目”并检查它是否包含“已发布”。当然,您可以将 eq() 更改为更高或更低的数字