1
resposta

Encadeamento com cypress

Alguém pode me ajudar a fazer um encadeamento correto no Cypress, por favor?

Eu preciso que, independentemente de ele entrar no if ou no else, um terceiro comando seja executado depois, usando o valor produzido por um deles.

Ou seja:

Dentro do if eu faço uma ação X.

Dentro do else eu faço uma ação Y.

E depois, preciso executar um comando final que dependa do resultado do if ou do else.

Estou com dificuldade porque o Cypress “quebra” o fluxo se eu não encadear corretamente com return e .then().

Como posso estruturar isso da forma certa?

1 resposta

Oi Sabrina! Como vai?

Vou te ajudar com um exemplo prático de como você pode estruturar o encadeamento no Cypress usando return e .then(). No Cypress, é comum usar promessas para controlar o fluxo assíncrono, e o then() é uma ótima maneira de fazer isso.

Aqui está um exemplo de como você pode estruturar seu código:

cy.get('seletor').then((element) => {
  if (element.someCondition) {
    // Ação X
    return cy.wrap('resultadoX');
  } else {
    // Ação Y
    return cy.wrap('resultadoY');
  }
}).then((resultado) => {
  // Comando final que depende do resultado do if ou else
  cy.log(`O resultado foi: ${resultado}`);
  // Aqui você pode colocar qualquer comando que dependa do resultado
});

Neste exemplo, usamos cy.wrap() para garantir que o valor produzido dentro do if ou else seja passado para o próximo then(). Dessa forma, você consegue manter o fluxo encadeado e executar o comando final com base no resultado do bloco condicional.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.