Tengo una prueba que va a un span > div , pero hay dos de ellos, por lo que cuando ejecuto la prueba, los concatena en un número 13,900879,210 . Necesito que me los den por separado para compararlos como el 13,900 y 879,210 . Aquí está mi código. ¿Alguien puede ayudarme con esto?
cy.get(`div[id]=2`).find('span').find('div').invoke('text').then((nums) => { cy.log(nums) // 13,900879,210 })Realmente no puede dividir el texto combinado (a menos que sepa cuántos caracteres hay en cada uno).
Puede obtener los textos individualmente,
cy.get(`div[id="2"]`).find('span').find('div') .then($divs => { const nums = [...$divs].map(div => div.innerText) cy.log(nums) // ['13,900', '879,210'] })dónde
$divs es un objeto jQuery que contiene ambos divs[...$divs] convierte el objeto jQuery en una matriz de elementos (en bruto).map(div => +div.innerText) asigna elementos a sus valores de texto Para trabajar con números enteros, agregue un + al mapa
cy.get(`div[id="2"]`).find('span').find('div') .then($divs => [...$divs].map(div => +div.innerText)) .should('deep.eq', [13900, 879210])Puede usar la función .each() de Cypress para iterar a través de cada elemento generado.
cy.get(`div[id]=2`).find('span').find('div').each(($el) => { // $el is a JQuery element, so we can use JQuery functions like `.text()` cy.log($el.text()); });