Olá, Emiliana! Pelo erro que você está enfrentando, parece que o teste está tentando encontrar o elemento com o data-test
igual a "titulo-cartoes", mas não está conseguindo localizá-lo no DOM. Isso pode estar acontecendo por alguns motivos:
Verificação Prematura: O teste pode estar tentando verificar a existência do elemento antes que a página tenha terminado de carregar ou antes que a navegação para a página de cartões esteja completa. Isso é comum em testes end-to-end onde as transições de página podem levar algum tempo.
Seleção Incorreta do Link: Se o link que está sendo clicado não leva à página de cartões como esperado, o teste não encontrará o elemento "titulo-cartoes". Isso pode acontecer se o índice usado no método eq()
estiver incorreto ou se a página tiver elementos dinâmicos que alteram a ordem dos links.
Vamos tentar ajustar o teste para garantir que estamos na página correta e que o teste aguarda adequadamente pelo carregamento dos elementos. Aqui estão algumas sugestões:
Aguardar Explicitamente: Uma boa prática é aguardar explicitamente por um elemento que confirme que a página foi carregada ou que a ação anterior foi concluída antes de prosseguir para o próximo passo. Você pode usar cy.wait()
para aguardar um número específico de milissegundos, ou melhor, usar .should()
para aguardar até que um elemento específico esteja visível.
Verificar a URL: Após clicar no link, você pode adicionar uma verificação para confirmar que a URL está correta. Isso ajuda a garantir que a navegação ocorreu como esperado.
Aqui está como você poderia ajustar seu teste:
describe('Acessando múltiplas páginas', () => {
it('Acessar página de cartões', () => {
cy.visit('/')
cy.getByData('botao-login').click()
cy.getByData('email-input').type('emi.stutz86@gmail.com')
cy.getByData('senha-input').type('123456')
cy.getByData('botao-enviar').click()
cy.getByData('app-home').find('a').eq(1).click()
// Aguardar a navegação e verificar a URL
cy.url().should('include', '/cartoes') // Substitua '/cartoes' pela URL correta da página de cartões
// Agora verifique se o título 'Meus cartões' está presente
cy.getByData('titulo-cartoes').should('exist').and('have.text', 'Meus cartões')
})
})
Essa abordagem deve ajudar a garantir que o teste esteja verificando a condição correta no momento certo. Lembre-se de substituir '/cartoes' pela URL correta que você espera que seja a da página de cartões.
Espero ter ajudado e bons estudos!