如何检查元素是否具有 'any' 值赛普拉斯?

How to check if an element has 'any' value Cypress?

我正在编写一些基本的 cypress 测试,我只是想确保 table 我们拥有所有正确的列并且所有数据都在呈现。

我知道 .contains() 检查元素选择并允许文本匹配,但此 table 中可能有各种数据,我只是想确保从后端呈现某些内容。

知道如何检查是否有任何(非特定)值吗?

干杯!

describe('Data Source Table renders properly', () => {
  beforeEach(() => {
    cy.viewport(1920, 1080)
    cy.visit('http://localhost:3000/source')
    // Assert we are on the correct page /source
    cy.url().should('include', '/source')
  })
  it('Data Source header exists', () => {
    cy.contains('Data Source')
  })
  it('Data Source table exists, column headers are correct and there is data', () => {
    cy.get('table').should('exist')
    cy.wait(2000)
    cy.get('table').contains('th', 'Ip')
    cy.get('table').contains('th', 'Station')
    cy.get('table').contains('th', 'Table')
    cy.get('table').contains('th', 'Status')
  })
})

你是对的,.contains()允许文本匹配。它还允许 regex matching 您可以根据自己的情况申请。

// this will check all td's will have any text
// here is regex example regexr.com/6jmi6
cy.contains('td', /\w/g).should('be.visible')

这样更简洁,IMO更不容易出错

cy.get('table thead th')
  .each($th => {
    expect($th.text()).not.to.be.empty
  })

您可以删除 cy.get('table').should('exist')cy.wait(2000)