Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

243
Vistas
Cómo usar then() y obtener el valor en Cypress

Tengo un elemento de intervalo cuyo valor es 2. Me gustaría verificar si el valor es mayor que 0, pero después de verificarlo en línea e implementar todos los métodos, no funcionó...

Aquí está la consola cuando registro $span

ingrese la descripción de la imagen aquí

Entiendo que Cypress funciona de forma asíncrona, así que uso .then() para obtener el texto del elemento. ¿Cómo puedo obtener el valor de 2 y hacer el siguiente if-else?

HTML

 <div> <span class="badge ml-1 badge-primary">2</span> </div>
 cy.get(".badge.ml-1.badge-primary").then(($span)=> { if($span.text().includes(0)) { doFunction1() } else { cy.get(xxxxx) } )}
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Hágalo encadenando métodos de conversión para pasar de element -> text -> number

 cy.get(".badge.ml-1.badge-primary") .invoke('text') // to text .then(text => +text) // to number .then(value => { if(value > 0) { doFunction1() } else { cy.get(xxxxx) } })

Esperando el valor 2

 cy.get(".badge.ml-1.badge-primary") .invoke('text') // to text .then(text => +text) // to number .should('eq', 2) // wait for value 2 .then(() => { doFunction1() // now doFunction })
about 4 years ago · Juan Pablo Isaza Denunciar

0

Lo que solicitó es verificar si el contenido de un lapso es MAYOR QUE 0. Por lo tanto, requerirá un enfoque adicional al uso de includes . Por ejemplo, puede leer un valor como una variable y verificar si es mayor que 0:

 cy.get(".badge.ml-1.badge-primary").then(($span)=> { const value = $span.text(); // now you know what the value is if(value > 0) { // actual check if > 0. Beware, implicit coersion here! read more below. doFunction1() } else { cy.get(xxxxx) } )}

La variable de value , sin embargo, es una cadena. Mi código funciona ya que JS convertiría una cadena en un número automáticamente. Dependiendo de su caso de uso, es posible que desee asegurarse de que sea un número válido y no otra cadena, que no se puede convertir en un número (como "2s"). Por ejemplo, si el valor es "2s", la comprobación de value > 0 sería falsa, lo que podría provocar un error en el código.

 cy.get(".badge.ml-1.badge-primary").then(($span)=> { const value = Number.parseInt($span.text()); // now you know what the value is if(!Number.isNaN(value) && value > 0) { // value is now of type number, but it may be NaN! (yes, NaN is also a number) doFunction1() } else { cy.get(xxxxx) } )}
about 4 years ago · Juan Pablo Isaza Denunciar

0

Primero, asegúrese de que el selector que está utilizando sea único, de modo que no obtenga un valor no deseado. En segundo lugar, puede esperar con un tiempo de espera personalizado en caso de que su página web tarde algún tiempo en completar el valor y luego aplicar su condición if-esle. Ahora, en lugar de 4 segundos (tiempo de espera predeterminado de Cypress), el comando debería volver a intentarlo durante 7 segundos para verificar que el elemento tiene el valor de texto interno de 2.

 cy.get(".badge.ml-1.badge-primary", { timeout: 7000 }).should("have.text", "2") cy.get(".badge.ml-1.badge-primary") .invoke(text) .then((num) => { if (+num > 0) { doFunction1() } else { cy.get(xxxxx) } })
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda