如何使用jquery在赛普拉斯测试中获取div'text'值

时间:2018-09-25 05:39:24

标签: javascript jquery cypress

在Cypress.io测试中使用Jquery,如何从下面的html标记中获取称为“ Wildness”的div“文本”值。我在赛普拉斯测试中尝试过以下方法,但在控制台中抛出未定义的结果。

const $divText = Cypress.$('.ibxudA .WildnessText-kRKTej').text()
         cy.wrap($divText)
           .should("eq", "Wildness")

<div class="sc-bMvGRv_onetwo">
<div>
<div class="abLeftSection">
<div class="abNewBtn-fTLJBK">
<button class="ifAKCX ohpWT" type="button">New</button>
</div>
<div class="kpLvEV" style="">
<div class="cWzXYZ">
<div class="OgGUG">
<div class="jsnnAD">
<svg class="dFvKsA"></svg>
</div>
</div>
<div class="ibxudA">First</div>
</div>
<div class="kpLvEV" style="">
<div class="bGADLM"><div class="OgGUG">
<div class="jsnnAD">
<svg class="dFvKsA"></svg>
</div>
</div>
<div class="ibxudA">
<div class="WildnessText-kRKTej" title="Wildness">Wildness</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

7 个答案:

答案 0 :(得分:5)

我可以尝试:

cy.get(".ibxudA").find('.WildnessText-kRKTej').invoke('text').then((text) => {
    expect(text.trim()).equal('Wildness')
});

 cy.get(".ibxudA").find('.WildnessText-kRKTej').should('have.text',"Wildness")

这可能是一个类似的问题:How do you check the equality of the inner text of a element using cypress?

答案 1 :(得分:4)

cy.get("WildnessText-kRKTej").then(function($elem) {
     cy.log($elem.text())
})

答案 2 :(得分:1)

    it('get text', async () => {
      const text = await new Cypress.Promise<string>((resolve) => {
        cy.get('[data-testid="target"')
          .invoke('text')
          .then((txt) => resolve(txt.toString()))
      })

      cy.log(text)
    })

答案 3 :(得分:0)

cy.get('.ibxudA .WildnessText-kRKTej').invoke('text').then((yourDivText) => {
   expect(yourDivText.toString().toLowerCase()).to.contain('wildness');
});

答案 4 :(得分:0)

我建议您这样使用内置的cypress API“包含”:

cy.contains('Wildness')

它将为您选择整个HTML标签。希望对您有帮助...

答案 5 :(得分:0)

一行验证:

语法:

cy.get(<selector>).invoke("text").should("eq", <your string>); 

示例:

cy.get("div.myclass").invoke("text").should("eq", "My Text");

在这里,以下方法用于检索文本。 should()用于验证。

cy.get('element').invoke('text')

答案 6 :(得分:0)

截止2020年7月,来自赛普拉斯文档(https://docs.cypress.io/faq/questions/using-cypress-faq.html#How-do-I-get-an-element%E2%80%99s-text-contents):

cy.get('div').should(($div) => {
  const text = $div.text()

  expect(text).to.match(/foo/)
  expect(text).to.include('foo')
  expect(text).not.to.include('bar')
})