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

212
Visualizações
Obtener AssertionError en el comando personalizado de Cypress

Mi archivo de objeto de página es como a continuación

 /// <reference types='cypress' /> const LOGIN_PAGE_HEADER_TEXT = '.welcome-message > h1'; class LoginPage { get loginPageHeaderText() { return cy.get(LOGIN_PAGE_HEADER_TEXT, {timeout: 140000}); } } export default LoginPage;

Quiero usar un comando personalizado para verificar el texto del encabezado de la página y el texto es dinámico

Así que traté de escribir un comando personalizado como el siguiente

 Cypress.Commands.add('shouldContain', (element , text) => { cy.get(element).should('contain.text', text) })

pero cuando uso el comando personalizado en mi archivo de prueba, aparece un error. Estoy tratando de usar el comando personalizado como a continuación

 cy.shouldContain(loginPage.loginPageHeaderText, 'Welcome')

El error que estoy recibiendo:

Se agotó el tiempo de reintento después de 60000 ms: se esperaba que {Objeto (0, longitud)} contuviera el texto "¿Olvidó la contraseña?", pero el texto era "

si uso esto

 Cypress.Commands.add('shouldContain', (element , text) => { element.should('contain', 'text') })

Luego me muestra el error

shouldcontain, texto AssertionError El objeto probado debe ser una matriz, un mapa, un objeto, un conjunto, una cadena o un conjunto débil, pero no definido dado

Necesitas ayuda

about 4 years ago · Santiago Gelvez
2 Respostas
Responde à pergunta

0

Tienes que escribir texto en lugar de 'texto'. Y en lugar de contain.text , use contiene.texto, esto hará una coincidencia parcial del texto interno del elemento.

 Cypress.Commands.add('shouldContain', (element , text) => { element.should('contain.text', text) })

O, si solo desea usar contain , puede hacer esto:

 Cypress.Commands.add('shouldContain', (element , text) => { element.invoke('text').should('contain', text) })
about 4 years ago · Santiago Gelvez Relatório

0

Los comandos personalizados no pueden tomar otros comandos como parámetros.

La forma de hacer esto es construir un comando secundario

 Cypress.Commands.add('shouldContain', {prevSubject:true}, (element , text) => { cy.wrap(element).should('contain.text', text) // ✅ passes })

Lo llamas así

 loginPage.loginPageHeaderText.shouldContain('Welcome')

Pasar loginPage.loginPageHeaderText como parámetro no funciona porque se evalúa demasiado pronto.

El resultado aún no está undefined porque los comandos aún no han comenzado a ejecutarse.

about 4 years ago · Santiago Gelvez 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