So erhalten Sie den Wert aus einem Eingabefeld in eine Konstante und protokollieren ihn

Lesezeit: 3 Minuten

Benutzer-Avatar von footballway
Fußballweg

So übertragen Sie den Texteingabefeldwert in eine „const“-Variable in Cypress, damit ich diese Variable mit cy.log() protokollieren kann. Der folgende Code protokolliert nichts. Kann mir jemand, der mit Cypress.io vertraut ist, bitte einen Rat geben?

cy.get('input[name="email"]').then(($text)=>{
        const txt = $text.text()
        cy.log(txt)

    })

Benutzer-Avatar von footballway
Fußballweg

Benutzen invoke('val') anstatt invoke('text') hat für meinen Fall funktioniert.

Erinnerung an den HTML-Tag

<input type="text" class="form-control" name="email">

Cypress-Code

cy.get('input[name="email"]')
  .invoke('val')
  .then(sometext => cy.log(sometext));

  • .invoke(‘val’) ist magisch! Ich habe stundenlang versucht, den Wert des V-Textfelds zu ermitteln. Danke!!

    – krankuba

    4. Februar 2021 um 13:40 Uhr


Gerard_devs Benutzeravatar
Gerard_dev

Offizielle Cypress-Lösung Wie erhalte ich den Wert einer Eingabe? schlägt so etwas wie den folgenden Code vor:

cy.get('input[name="email"]').should('have.value', val)

  • Nicht ganz das, was gefragt wurde, aber nützlich für andere Fälle

    – Haroldo_OK

    24. Juni 2021 um 12:46 Uhr


  • Nach der Verwendung von .type() hat dies manchmal (passiert nur in CI) aus irgendeinem Grund einen falschen Wert, meistens nur mit 1 FEHLENDEN BUCHSTABEN. irgendwelche Ideen?

    – Trainoase

    8. Dezember 2022 um 13:56 Uhr

  • @trainoasis versuche die Schreibgeschwindigkeit anzupassen

    – Chris

    18. Januar um 12:27

Brendans Benutzeravatar
Brendan

Aus https://github.com/cypress-io/cypress/issues/630

Sie sollten dazu in der Lage sein:

cy
  .get('input[name="email"]')
  .invoke('val') 
  .then(text => {
    const someText = text;
    cy.log(someText);
  });

Das funktioniert bei mir in einem Test mit dem folgenden Element:

<span class="abProgress" style="width: 0%;">100%</span>

  • Ich habe das versucht, jetzt wird der Fehler „cypress_runner.js:141304 TypeError: $el.invoke is not a function at Context.“ ausgegeben.

    – Fußballweg

    10. August 2018 um 20:53

  • Entschuldigung, ich bin aus dem Gedächtnis geraten und habe mich geirrt. Ich habe die Antwort mit Code direkt aus einem meiner funktionierenden Tests aktualisiert (aber Ihren Selektor an Ort und Stelle gesetzt). Ich fand das etwas schwierig, als ich es herausgefunden habe, und einige Elementtypen haben damit nicht funktioniert, also hoffe ich, dass es bei Ihnen klappt.

    – Brendan

    10. August 2018 um 21:17 Uhr


  • Noch kein Glück, ich habe es wie folgt versucht, aber das Protokoll protokolliert den im Textfeld „cy.get(“input“ eingegebenen Wert nicht[name=”email”]’).invoke(‘text’).then(text=>{ const sometext = text; cy.log(sometext); })’

    – Fußballweg

    10. August 2018 um 22:50 Uhr


  • @ Brendan, habe endlich herausgefunden, dass ich anstelle von invoke(‘text’) invoke(‘val’) verwendet habe. Jetzt protokolliert Cypress den Variablenwert … ‘cy .get(‘input[name=”email”]’).invoke(‘val’).then(val => { const sometext = val; cy.log(sometext); })’

    – Fußballweg

    13. August 2018 um 9:12 Uhr


  • @soccerway Schön zu hören, wie sah das Element aus, mit dem es funktioniert hat?

    – Brendan

    13. August 2018 um 14:58

Wenn Sie den Text vor einer Aussage massieren oder bearbeiten möchten:

cy.get('input').should(($input) => {
  const val = $input.val()
})

using-cypress-faq

.contains(‘Ihr-Wert’) hat bei mir funktioniert

  • Ein Link zu einer Lösung ist willkommen, aber stellen Sie bitte sicher, dass Ihre Antwort auch ohne diesen Link nützlich ist: Fügen Sie Kontext um den Link hinzu Damit Ihre Mitbenutzer eine Vorstellung davon haben, was es ist und warum es dort ist, zitieren Sie dann den relevantesten Teil der Seite, auf die Sie verlinken, falls die Zielseite nicht verfügbar ist. Antworten, die kaum mehr als ein Link sind, können gelöscht werden.

    – Yunnosch

    10. März 2020 um 11:02 Uhr

  • Ein Link zu einer Lösung ist willkommen, aber stellen Sie bitte sicher, dass Ihre Antwort auch ohne diesen Link nützlich ist: Fügen Sie Kontext um den Link hinzu Damit Ihre Mitbenutzer eine Vorstellung davon haben, was es ist und warum es dort ist, zitieren Sie dann den relevantesten Teil der Seite, auf die Sie verlinken, falls die Zielseite nicht verfügbar ist. Antworten, die kaum mehr als ein Link sind, können gelöscht werden.

    – Yunnosch

    10. März 2020 um 11:02 Uhr

1453420cookie-checkSo erhalten Sie den Wert aus einem Eingabefeld in eine Konstante und protokollieren ihn

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

Privacy policy