es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Mi IF puede ejecutarse sin errores pero no funciona.

Estoy teniendo problemas tratando de crear un escenario IF en mi cypress.
Lo que estoy intentando hacer ahora es cambiar la Duración en Minutos de la hoja de tiempo de mi sitio web si la Duración en Horas es menor al número específico. Sin embargo, el sitio web en el que estoy trabajando está raro, no permite escribir números y en su lugar solo funciona presionando la tecla de flecha hacia arriba para cambiar la Duración en Minutos.

cy.get('[ng-model="item.durationMinutes"]').each(($el, index) => 
        {
            let hours = cy.get('[ng-model="item.durationHours"]')
            let n = hours.toString()
            cy.get('[ng-model="item.durationMinutes"]').then(($hours) => 
            {
                if(n <= 10)
                {
                cy.get('[ng-model="item.durationMinutes"]')
                .click().type('{uparrow}',{multiple:true, force: true})
                }
            })
        });

El código que acabo de hacer es para realizar el escenario IF. Aunque se ejecuta en mi programa, no cambia la Duración en Minutos dentro de las condiciones especificadas. ¿Cómo debo solucionar esto?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema podría estar en la forma en que estás convirtiendo la variable “hours” a una cadena usando “toString()”.

    En su lugar, puedes usar “invoke(‘val’)” para obtener el valor del campo de entrada “hours” como una cadena y luego compararlo con el número que desees.

    Aquí tienes una versión actualizada del código:

    cy.get('[ng-model="item.durationMinutes"]').each(($el, index) => {
      cy.get('[ng-model="item.durationHours"]').invoke('val').then(hours => {
        if (parseInt(hours, 10) < 2) {
          cy.get('[ng-model="item.durationMinutes"]')
            .click({ multiple: true, force: true })
            .type('{uparrow}{uparrow}{uparrow}')
        }
      })
    })
    

    En este código actualizado, estamos utilizando “parseInt()” para convertir la cadena “hours” en un número, y luego lo comparamos con el número 2 (puedes cambiar esto por cualquier número que desees). Si las horas son menores que 2, hacemos clic en el campo “DurationMinutes” y presionamos la tecla de flecha hacia arriba tres veces para aumentar los minutos en 3 (ya que cada presión aumenta el valor en 1).

    Espero que esto ayude. Hazme saber si tienes alguna otra pregunta.

Comments are closed.