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

128
Visualizações
Cypress extrae un segmento de cadena con expresiones regulares para una comparación posterior

Estoy creando una prueba en cypress donde necesito extraer parte de una etiqueta en un botón (ya tengo un selector para eso), almacenarlo y usarlo más tarde en la prueba para un .should('contain', label) afirmación.

He intentado hacer lo siguiente:

 cy.assertObjectIsFocused(selector[Cypress.env(common.APP_NAME)].newPlayer.btnNextEpisode); cy.get(selector[Cypress.env(common.APP_NAME)].newPlayer.btnNextEpisodeLabel) .invoke('attr', common.TEXTURE_TEXT) .and('match', /S\d+ E\d+/) .as('nextEpisodeLabel'); ... cy.get('@nextEpisodeLabel').then((label) => { cy.get( selector[Cypress.env(common.APP_NAME)].newPlayer.playerAssetEpisodeAndSeasonNumbers, ) .invoke('attr', common.TEXTURE_TEXT) .should('contain', label); });

Pero no está extrayendo la expresión regular, está comparando la etiqueta completa (esperaba .and('match', /S\d+ E\d+/).as('nextEpisodeLabel'); almacenaría como un alias solo la expresión regular de la cadena, pero no, almacena toda la cadena.

¿Cómo puedo extraer solo la parte necesaria de la cadena para poder usarla luego en la afirmación?

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

0

Puedes hacer algo como esto:

 cy.assertObjectIsFocused( selector[Cypress.env(common.APP_NAME)].newPlayer.btnNextEpisode ) cy.get(selector[Cypress.env(common.APP_NAME)].newPlayer.btnNextEpisodeLabel) .invoke('attr', common.TEXTURE_TEXT) .as('nextEpisodeLabel') ... cy.get('@nextEpisodeLabel').then((label) => { cy.wrap(label).should('match', /S\d+ E\d+/) cy.get( selector[Cypress.env(common.APP_NAME)].newPlayer .playerAssetEpisodeAndSeasonNumbers ) .invoke('attr', common.TEXTURE_TEXT) .should('contain', label) })

O, si desea agregar el alias en función de si la etiqueta extraída coincide con la expresión regular o no, puede hacer lo siguiente:

 cy.assertObjectIsFocused( selector[Cypress.env(common.APP_NAME)].newPlayer.btnNextEpisode ) cy.get(selector[Cypress.env(common.APP_NAME)].newPlayer.btnNextEpisodeLabel) .invoke('attr', common.TEXTURE_TEXT) .then(($nextEpisodeLabel) => { if ($nextEpisodeLabel.match(/S\d+ E\d+/)) { cy.wrap($nextEpisodeLabel).as('nextEpisodeLabel') } }) ... cy.get('@nextEpisodeLabel').then((label) => { cy.get( selector[Cypress.env(common.APP_NAME)].newPlayer .playerAssetEpisodeAndSeasonNumbers ) .invoke('attr', common.TEXTURE_TEXT) .should('contain', label) })
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