Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

230
Visualizações
¿Cómo invocar todos los valores de opción de seleccionar con cypress/javascript?

Estoy tratando de obtener todos los values en select tag para tener una matriz. Este es mi código:

 cy.get('[data-tab-name-prefix="selectedFonds[0]]') .scrollIntoView() .should('be.visible') .find('[name="selectedFonds[0][name]"]') .find('option') .invoke('attr', 'value').then($options => { cy.log($options) }) 

 <div data-tab-name-prefix="selectedFonds[0]"> <div class= something> <div class= something else> <select class=form-control name="selectedFonds[0][name]"> <option value="first value"> First Value </option> <option value="second value"> Second Value </option> <option value="third value"> Third Value </option> <option value="forth value"> Forth Value </option> </select> </div> </div> </div>

El problema es que solo devuelve la primera opción... no todas.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Mi sugerencia sería apuntar al elemento con el atributo de datos y luego hacerlo within() . Luego apunte al elemento de selección y haga children() . Seguido de un bloque each() para iterar sobre cada elemento de opción.

 const values = ['first value', 'second value', 'third value', 'fourth value'] cy.get('[data-tab-name-prefix="selectedFonds[0]]') .scrollIntoView() .should('be.visible') .within( ($el) => { cy.get('select')//based on your HTML you have only one select inside this div .should('be.visible') .children() .each( ($el, index) => { cy.get($el) .should('have.value', values[index]) }) })
about 4 years ago · Juan Pablo Isaza Relatório

0

.invoke('attr', 'value') está causando el problema, cambia la matriz a un solo valor.

Mueva la llamada attr() dentro de .then() .

 const expectedValues = ['First value', 'Second value', 'Third value', 'Fourth value'] cy.get('[data-tab-name-prefix="selectedFonds[0]]') .scrollIntoView() .should('be.visible') .find('[name="selectedFonds[0][name]"]') .find('option') .then($options => { const values = [...$options].map(option => option.getAttribute('value').trim()) return values }) .should('deep.eq', expectedValues) })
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda