tengo la grilla que tiene html como sigue
<div class="grid-container"> <div class="ui three column grid"> <div class="row"> <div class="fourteen wide column"> <h3>Successfull</h3> </div> </div> <div class="row"> <div class="column"></div> <div class="column"><h5>Before</h5></div> <div class="column"><h5>After</h5></div> </div> <div class="row"> <div class="column">Status</div> <div class="column"><h5>3</h5></div> <div class="column"><h5>50</h5></div> </div> <div class="row"> <div class="column">Result</div> <div class="column"><h5>loose</h5></div> <div class="column"><h5>win</h5></div> </div> </div> </div>
Estoy tratando de obtener datos sobre el estado antes y después y quería hacer el
afirmación
como
3 is greater than zero and 69 is greater than 65 don't quiero usar net-child() para encontrar el localizador, ya que estoy tratando de realizarlo solo en la cypress syntax de Cypress
mi esfuerzo
pero obteniendo este error
cy.get(.three).contains('Status').parent().should('have.text',0); get .three -contains status -parent -next -assert expected '<div.column>' to have text '0' but the text was ' 3 'es decir, está devolviendo un espacio amplio antes y después de 3
cuando traté de convertirlo en un número entero para satisfacer mis necesidades
cy.get(".three").contains('Status').parent().invoke('val').then(parseFloat).should('be.gte',0); get .three -contains status -parent -next -assert expected NaN to be at least 0¿También hay alguna forma mejor de atravesar el localizador requerido?
Si su texto siempre devuelve algo como ' 3 ' , entonces puede usar fácilmente .trim() para eliminar los espacios en blanco antes de convertir la cadena en un número.
cy.get('.three').contains('Status').parent().then(($el) => { const stringVal = $el.text().trim(); // turns ' 3 ' into '3' const numVal = +stringVal; // turns '3' into 3 // the above two lines could be combined into a single line expect(numVal).to.be.greaterThan(0); });Puedes hacer algo como esto:
cy.get('.three') .contains('Status') .parent() .within(() => { //To validate as text cy.get('.column').eq(1).should('have.text', '3') //To validate as a number cy.get('.column') .eq(1) .invoke('text') .then((text) => +text.trim()) .should('be.gte', 0) })