Este documento foi criado para ajudar a solucionar os problemas mais comuns ao usar o Cypress. Se você não encontrar a resposta para sua pergunta aqui, fique à vontade para abrir uma issue e dar sua sugestão!
Se você está interessado em ajudar no projeto, abra uma issue e explique qual tópico ou assunto você gostaria de adicionar.
Você também pode enviar qualquer ideia/sugestão como issue.
Todas as contribuições são muito bem-vindas!
Leia nosso guia de como contribuir.
<a>Geral</a>
Certifique-se de que você tenha a versão mínima necessária do Node.js e npm. Além disso, tente deletar a pasta node_modules e o arquivo package-lock.json, e então reinstale as dependências. Você pode deletar manualmente ou rodando o seguinte comando no terminal (lembre-se de estar na raiz do projeto):
rm -rf node_modules package-lock.json
npm install
O force: true é usado quando o elemento a ser clicado está coberto ou fora de visualização. Ou seja, utilizar essa abordagem com frequência é uma má prática. Você pode usar algumas alternativas:
Pode ser que o elemento ainda não tenha sido renderizado na tela no momento do clique. Utilize should('be.visible') para garantir que o elemento esteja visível antes de tentar interagir com ele.
cy.get('seletor').should('be.visible').click();
Se o elemento não estiver no topo, você pode usar o comando scrollIntoView para garantir que o elemento esteja visível na janela de visualização.
cy.get('seletor').scrollIntoView().click();
Certifique-se de que o elemento não esteja oculto usando should('not.be.hidden').
cy.get('seletor').should('not.be.hidden').click();
Às vezes, clicar em um elemento filho pode ser mais eficaz.
cy.get('seletor').find('child-seletor').click();
Especificar a posição do clique pode ajudar a evitar elementos sobrepostos.
cy.get('seletor').click('center');
Elementos sobrepostos ou fora de visualização podem indicar problemas na aplicação em si. Verifique se há algo errado no layout ou no comportamento da aplicação que possa ser corrigido.
Em casos onde não é possível evitar o uso de force: true, documente bem o motivo e avalie se há melhorias que possam ser feitas no código ou no estrutura da aplicação para evitar a necessidade desse uso.
cy.get('seletor').click({ force: true });
Ao seguir essas alternativas, você poderá criar testes mais robustos e evitar o uso do force: true, que pode mascarar problemas escondidos na aplicação.
Feito com ❤️ por Adriano Driuzzo
Agradecimentos aos colaboradores: (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
$ claude mcp add cypress-faq \
-- python -m otcore.mcp_server <graph>