Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Timed out retrying after 4000ms: expected

Se as orientações da professora na aula conforme código abaixo, mas ao executar o cypress obtenho como resposta : Timed out retrying after 4000ms: expected '[ <h4.busca-resultado-nome>, 24 more... ]' to contain 'Formação Aprenda a programar em Java com Orientações a Objetos' *

****************Código usado no exercício****************

describe('alura busca cursos', () => {

beforeEach(() =>{
    cy.visit('https://www.alura.com.br');
})

it('buscar curso de java', () => {
    cy.get('#header-barraBusca-form-campoBusca').type('java');
    cy.get('.header-barraBusca-form-submit').click();
    cy.get('h4.busca-resultado-nome')
      .should('contain' , 'Formação Aprenda a programar em Java com Orientações a Objetos');
})

})

1 resposta
solução!

Oi Márcio, tudo bem?

Desculpe a demora em retornar.

Pelo que entendi, você está enfrentando um problema de timeout ao executar o Cypress e verificar se um elemento contém um determinado texto. O erro que você está recebendo é: "Timed out retrying after 4000ms: expected '[ <h4.busca-resultado-nome>, 24 more... ]' to contain 'Formação Aprenda a programar em Java com Orientações a Objetos'".

Esse erro ocorre porque o Cypress não conseguiu encontrar o texto esperado dentro do elemento selecionado. Isso pode acontecer por diversos motivos, como atraso na renderização da página ou problemas na identificação do elemento.

Uma possível solução para esse problema é adicionar um tempo de espera antes de verificar se o elemento contém o texto desejado. Você pode usar o comando cy.wait() para aguardar um determinado período de tempo antes de fazer a verificação. Por exemplo:

it('buscar curso de java', () => {
  cy.get('#header-barraBusca-form-campoBusca').type('java');
  cy.get('.header-barraBusca-form-submit').click();
  cy.get('h4.busca-resultado-nome')
    .should('be.visible')
    .then(() => {
      cy.wait(2000); // Aguarda 2 segundos antes de fazer a verificação
      cy.get('h4.busca-resultado-nome')
        .should('contain', 'Formação Aprenda a programar em Java com Orientações a Objetos');
    });
})

Dessa forma, você está dando um tempo extra para que o elemento seja renderizado corretamente antes de fazer a verificação. Lembre-se de ajustar o tempo de espera de acordo com a velocidade de carregamento da página.

Espero que essa sugestão possa te ajudar a resolver o problema.

Ah esse curso recebeu uma atualização, você pode verificar aqui:

Um abraço e bons estudos.