3
respostas

[Dúvida] Preciso de uma ajuda com um botão que pode ou não aparecer

Primeiramente, muito obrigado pela aula, muito didático e me ajudou muito na minha evolução!

Tenho um problema que ainda não consigo solucionar sozinho.

Ocorre que estou acessando um site que utiliza um sistema beammer e hora ou outra eles lançam notificações que se eu não clicar ele fica na tela até que clique. Com isso meus teste quebram pois preciso clicar no #pushActionRefuse. O maior problema é que estas atualizações não são todos os dias, ou seja, se eu criar um cy.get(#pushActionRefuse).click(); no dia em que não tiver a atualização o sistema vai dar erro porque ele vai procurar esse código e ele não existe.

Teriam uma dica de como eu poderia fazer essa validação ? se existir o botão clicar para fechar, e se não tiver ele simplesmente ignorar.

Obrigado!

3 respostas

Olá, boa tarde! Tudo bem?

Verifiquei a sua dúvida e também fui procurar uma solução, pois não tinha o conhecimento, agora que eu testei aqui no meu Cypress eu consigo te passar uma solução para essa questão!

Código de exemplo:

// Sempre usar antes do código para facilitar a digitação
/// <reference types="cypress" />
// Evita erro uncaught:exception
Cypress.on("uncaught:exception", (err, runnable) => {
    return false;
});
// Fazer antes do caso
beforeEach(() => {
    cy.visit("https://www.alura.com.br");
});
// Caso 1
it("Existe a classe 'home__titles__main-title'", () => {
    // Log para iniciar o código
    cy.log("inicio");
    // Buscar Body então function $body
    cy.get("body").then(($body) => {
        // Se $body procurar o objeto e o objeto tiver tamanho maior que 0
        if ($body.find(".home__titles__main-title").length > 0) {
            //Aqui acontece se o OBJETO EXISTIR
            assert.isOk("verdadeiro o IF");
        } else {
            //Aqui acontece se o OBJETO NÃO EXISTIR
            cy.log("Aqui não vai cair");
        }
    });
    cy.log("fim");
});
// Caso 2
it("NÃO existe a classe 'inexistente'", () => {
    // Log para iniciar o código
    cy.log("inicio");
    // Buscar Body então function $body
    cy.get("body").then(($body) => {
        // Se $body procurar o objeto e o objeto tiver tamanho maior que 0
        if ($body.find(".inexistente").length > 0) {
            //Aqui acontece se o OBJETO EXISTIR
            cy.log("Aqui não vai cair");
        } else {
            //Aqui acontece se o OBJETO NÃO EXISTIR
            assert.isOk("falso o IF");
        }
    });
    cy.log("fim");
});

Conseguiu compreender? Caso tenha alguma dúvida, só comentar aí que eu te ajudo novamente, se caso eu consegui lhe auxiliar, poderia marcar como solucionado a minha resposta?

Amigo, muito obrigado !Não consegui testar hoje por conta da copa, mas até segunda feira eu retorno aqui! De toda forma voce deixou muito bem explicado!

Olá amigo, teria algum retorno do caso?