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

181
Vistas
Cypress/Javascript - Intentando hacer clic en un botón que aún no está seleccionado

Tengo un problema en mi Cypress donde intento hacer clic en un segundo botón que aún no está deshabilitado o seleccionado. Lo que está sucediendo actualmente es que está seleccionando el botón ya seleccionado y no estoy seguro de por qué.

Aquí hay un ejemplo de html, por lo que si observa el código a continuación, hay dos divs, cada uno de los cuales maneja una fila de selección. Dentro de cada fila hay un botón (enlace <a> ).

Entonces, lo que sucede es que si se selecciona un botón, la clase selected se agrega al <a> element like so :

 <a id="event-selection-4191929065" eventid="event-selection-19976412" title="Ronaldo to score 2 or more goals" eventmodule="ODDS_BOOSTS_HOMEPAGE" class="oddsBoostedPrice button__bet eventSelection--link selected" "="">

Es por eso que tengo la verificación para asegurarme de que revisamos cada elemento del botón de probabilidades y si no contiene la clase .selected .

¿Alguien puede ver lo que estoy haciendo mal y cómo solucionarlo?

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

0

Este se puede simplificar, porque ya verificaste la clase .button__bet dentro del método oddsButton .

 oddsSelectionElements.oddsButton() .each((element, index) => { if (!element.hasClass("disabled") && !element.hasClass("selected")) { cy.wrap(element).click() return false } })

Lo siento, necesita && entre las dos comprobaciones de clase porque cada comprobación es ! (no).


disabled suele ser un atributo, que se verificaría así

 oddsSelectionElements.oddsButton() .each((element, index) => { if (!element.attr("disabled") && !element.hasClass("selected")) { cy.wrap(element).click() return false } })

Probado con este fragmento de HTML

 <button class="oddsBoostedPrice button__bet eventSelection--link selected"></button> <button class="oddsBoostedPrice button__bet eventSelection--link" disabled></button> <button class="oddsBoostedPrice button__bet eventSelection--link"></button>

Solo el tercer botón pasa a la instrucción if() .

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puedes intentar cambiar tu condición if a algo como esto:

 oddsSelectionElements.oddsButton().each((element, index) => { if (!element.prop("disabled") && !element.hasClass("selected")) { cy.wrap(element).click() return false } })
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