【问题标题】:cypress: expect element contains some text赛普拉斯:期望元素包含一些文本
【发布时间】:2019-08-20 04:57:17
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: cypress


    【解决方案1】:

    由于$items 没有问题,因此您的问题出现在您期望$items[1] 的数组中。正如赛普拉斯所说,$items[1] 是未定义的,“不是函数”错误是同一个问题,但描述得更复杂:)。因此赛普拉斯找不到第二个元素,因此使用 Array 不起作用。如果你把它改成这样,它可能会通过:

    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() 更改为更高或更低的数字

    【讨论】:

    • 有没有办法检查$items中的特定项目?
    猜你喜欢
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 2020-10-14
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多