So erhalten Sie den div ‘text’-Wert im Cypress-Test mit jquery

Lesezeit: 3 Minuten

Verwenden von Jquery in Cypress.io-Test, um den div-Textwert namens „Wildness“ aus dem folgenden HTML-Tag abzurufen. Ich habe es unten in meinem Cypress-Test versucht, aber es wirft undefiniert in die Konsole.

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>

  • Beantwortet das deine Frage? Wie verwende ich Werte von DOM im Cypress-Test?

    – Michael Freigeim

    8. Oktober 2020 um 7:36 Uhr

Benutzer-Avatar
Maccurt

Ich könnte das versuchen:

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

oder

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

Dies könnte eine ähnliche Frage sein: Wie überprüft man die Gleichheit des inneren Textes eines Elements mit Cypress?

  • Ich habe Ihr HTML genommen und es mit Cypress getestet und das oben Gesagte hat funktioniert. Lassen Sie mich wissen, wenn Sie irgendwelche Probleme haben.

    – Mackurt

    27. September 2018 um 12:50 Uhr

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

  • Das ist eine absolute Schönheit

    – Pradap Pandian

    4. Juli um 11:43 Uhr

Einzeilige Validierung:

Syntax:

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

Beispiel:

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

Hier wird das folgende Verfahren zum Abrufen von Text verwendet. should() dient der Validierung.

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

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

      cy.log(text)
    })

I would suggest you use inbuilt cypress API ‘contains’ like this:

cy.contains('Wildness')

It will select the whole HTML tag for you. Hope it helps…

user avatar
Rocío García Luque

As of July 2020, from Cypress docs (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')
})

user avatar
Cleriston

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

  • Appreciate your help, but it Failed to find the element CypressError: Timed out retrying: Expected to find element: ‘.ibxudA .WildnessText-kRKTej’, but never found it.

    – soccerway

    Sep 25, 2018 at 5:55

  • It is just the selector. You can refactor this value as you need.

    – Cleriston

    Sep 25, 2018 at 5:58

  • you could try just “.WildnessText-kRKTej” since your class is unique.

    – Cleriston

    Sep 26, 2018 at 13:33

1159580cookie-checkSo erhalten Sie den div ‘text’-Wert im Cypress-Test mit jquery

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy