Cypress:如何检查元素是否有文本但文本不具体?

Noe*_*lin 10 cypress

还有其他方法可以检查元素是否有文本吗?

cy.get('h1').should('have.text','Enter your text')
Run Code Online (Sandbox Code Playgroud)

我有这段代码,但我不希望文本与我想要检查的内容完全相同。我只想检查元素上是否有文本。

Fod*_*ody 21

另一种方法是测试任何非零长度的文本

cy.visit('http://example.com')
cy.get('h1').invoke('text').should('have.length.gt', 0)  // gt == greater than
cy.get('h1').invoke('text').should('not.be.empty')       // not.be.empty == NOT "" 
cy.get('h1').should('not.have.text', "")                 // also NOT "" 
Run Code Online (Sandbox Code Playgroud)


Ala*_*Das 9

如果您想验证部分文本,您可以:

cy.get('h1').should('include.text','partial text')
Run Code Online (Sandbox Code Playgroud)

如果您只想检查您的元素是否有一些内部文本,无论它是什么,您可以:

cy.get('h1').invoke('text').should('have.length', 1)
Run Code Online (Sandbox Code Playgroud)

正如 @kame 建议的,您还可以添加一个断言,因为长度大于 0,以防上述方法不起作用。

cy.get('h1').invoke('text').should('have.length.gt', 0)
Run Code Online (Sandbox Code Playgroud)

  • 我不会使用`.should('have.length', 1)`。@Kame的修正更好。 (3认同)