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

113
Vistas
Selección dinámica del segundo elemento de un menú desplegable estático usando ciprés

para automatizar la funcionalidad CRUD, necesito seleccionar el segundo elemento de un menú desplegable estático y el html es como

 <select name="segment[segment_contact_id]" id="segment_segment_contact_id"> <option value="73082">Rita Basu</option> <option value="73349">researcher user</option> </select>

Entonces, al usar ciprés, estoy usando el valor codificado y mi código es como

 const segmentUser2 = 'researcher user' const userValue2 = 73349 cy.get('select#segment_segment_contact_id') .select(segmentUser2) .should('have.value', userValue2)

Necesito una sugerencia porque no me gusta usar el valor codificado en lugar de eso, me gustaría usar siempre el segundo elemento del menú desplegable dinámicamente.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Podrías hacer algo como esto

 Cypress.Commands.add( 'selectNth', { prevSubject: 'element' }, (subject, pos) => { cy.wrap(subject) .children('option') .eq(pos) .then(e => { cy.wrap(subject).select(e.val()) }) } )

Uso

 cy.get('[name=assignedTo]').selectNth(2)
about 4 years ago · Juan Pablo Isaza Denunciar

0

Aquí está el camino de @ItsNotAndy sin el comando personalizado.

 cy.get('select#segment_segment_contact_id') .children('option').eq(1) .then($option => { cy.wrap($option).parent().select($option.val()) })

Como una función

 function selectNth(selector, pos) { cy.get(selector) .children('option').eq(pos) .then($option => { cy.wrap($option).parent().select($option.val()) }) } selectNth('select#segment_segment_contact_id', 1)

Verificando a partir del texto mostrado

 cy.get('select#segment_segment_contact_id') .find(':selected') .contains('researcher user')

Verificando por el índice seleccionado

 cy.get('select#segment_segment_contact_id') .its('0.selectedIndex') .should('eq', 1)
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puedes usar esto también. Aquí primero obtenemos el valor del segundo elemento de la lista usando el comando eq() . Luego, una vez que tenemos el valor, simplemente lo estamos pasando a select() .

 cy.get('select#segment_segment_contact_id option').eq(1).invoke('val') .then((val) => { cy.get('select#segment_segment_contact_id').select(val) })

Y si solo desea validar el valor o el texto, puede hacerlo:

 cy.get('select#segment_segment_contact_id option') .eq(1).should('have.value', 73349) cy.get('select#segment_segment_contact_id option') .eq(1).should('have.text', 'researcher user')
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