web-dev-qa-db-fra.com

Comment obtenir la valeur div 'text' dans le test Cypress en utilisant jquery

En utilisant Jquery dans le test Cypress.io, comment obtenir la valeur div 'text' appelée 'Wildness' à partir de la balise html ci-dessous. J'ai essayé ci-dessous dans mon test Cypress, mais il lance undefined dans la console.

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>
8
soccerway

Je pourrais essayer ceci:

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

ou

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

Cela pourrait être une question similaire: Comment vérifiez-vous l'égalité du texte interne d'un élément à l'aide de cyprès?

15
Maccurt

Je vous suggère d'utiliser l'API de cyprès intégrée "contient" comme ceci:

cy.contains('Wildness')

Il sélectionnera la balise HTML entière pour vous. J'espère que ça aide...

1
yogesh dhiman
cy.get('.ibxudA .WildnessText-kRKTej').invoke('text').then((yourDivText) => {
   expect(yourDivText.toString().toLowerCase()).to.contain('wildness');
});
0
Cleriston
    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)
    })
0
R. M.

Validation sur une ligne:

Syntaxe:

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

Exemple:

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

Ici, la méthode suivante est utilisée pour récupérer du texte. should() est utilisé pour la validation.

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