Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

543
Views
cómo extraer un valor numérico del texto, además de convertirlo en un número en Cypress

Hola amigos, ya que soy nuevo en esto de Cypress y la automatización de la interfaz de usuario. Necesito su ayuda para resolver el escenario actual. Tengo una cuadrícula como esta. ingrese la descripción de la imagen aquí he creado un custom command en support\commands.js continuación es mi código que toma OrderID como parámetro y lee la Freight info de ui pero tiene muchas pestañas nested div para el relleno, por lo tanto, uso la etiqueta parents() para alcanzar el índice específico fila

 Cypress.Commands.add('readFreightInfo', (OrderID) => { return cy.get('.simple-table__cell:nth-child(1)') .contains(OrderID) .parents("div[role='row']") .find('div') .eq(2) .invoke('text') })

pero el texto que devuelve es '\n 65,88' lo que necesitaba necesitaba la parte numérica solo, es decir, 299,88 en Number type

como era un método genérico para la validación que estaba usando antes

 cy.readFreightInfo(10250).should('eq', 65.83)

pero ahora quiero afirmarlo ya que el valor de retorno del custom command debe estar between 60 and 70

lo que he intentado hasta ahora

he intentado usar tanto la solución alternativa mencionada en esta respuesta

enlace de solución que he intentado

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Puede devolver el valor de un comando personalizado como este:

 Cypress.Commands.add('readFreightInfo', (OrderID) => { cy.get('.simple-table__cell:nth-child(1)') .contains(OrderID) .parents("div[role='row']") .find('div') .eq(2) .invoke('text') .then((text) => { return cy.wrap(+text.replaceAll('\n ', '')) //returns 65.83 as number }) })

Y luego en tu prueba, puedes hacer esto:

 cy.readFreightInfo(10250).then((numValue) => { cy.wrap(numValue).should('eq', 65.83) //direct assert cy.wrap(numValue).should('be.gte', 60).and('be.lte', 70) //greater than equal to 60 and less than equal to 70 })
about 4 years ago · Juan Pablo Isaza Report

0

.trim() elimina los terminadores de línea de ambos extremos del texto.

Además, acceso directo para obtener la fila: use .contains('[role="row"]', OrderId) .

 Cypress.Commands.add('readFreightInfo', (OrderID) => { cy.contains('div[role="row"]', OrderID) .find('div') .eq(2) .invoke('text') .then(text => parseInt(text.trim()) ) }) cy.readFreightInfo(10250) .should('be.within', 60, 70)

Referencia cadena.trim()

El método trim() elimina los espacios en blanco de ambos extremos de una cadena y devuelve una nueva cadena, sin modificar la cadena original. Los espacios en blanco en este contexto son todos los caracteres de espacio en blanco (espacio, tabulador, espacio sin interrupción, etc.) y todos los caracteres de terminación de línea (LF, CR, etc.).

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!