Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Problema ao executar o cy.login

Olá,

Estou com problemas ao executar o cy.login, sempre apresenta o seguinte erro:

Timed out retrying after 4000ms: Expected to find element: input[formcontrolname="userName"], but never found it.

Abaixo segue os prints de cada etapa, poderiam me ajudar?

gui_commands.jse2e.jsalurapic.cy.jsAgradeço.

4 respostas

Olá, boa tarde Gabriela, tudo bem?

Verificando o seu caso, parece que ele não está no site correto, porque a escrita do seu código( print dos trechos) aparentemente estão certos, esse é um ponto a verificar, teria como mandar todo o trecho do código que está o it()?

Também pode ser instabilidade no portal deles... porque o mesmo caso de teste, rodou normalmente aqui.

Oi Diogo, estou bem e você? Obrigada pela resposta.

Segue o código inteiro do projeto alurapic.cy.js:

describe('Login e registro de usuários alura pic', () => {

beforeEach(() => {
    cy.visit('https://alura-fotos.herokuapp.com')
})

it('verifica mensagens validacao', () => {
    cy.contains('a', 'Register now').click();
    cy.contains('h4', 'Register to embrace a new world!').should('be.visible');
    cy.contains('button', 'Register').click();
    cy.contains('ap-vmessage', 'Email is required!').should('be.visible');
    cy.contains('button', 'Register').click();
    cy.contains('ap-vmessage', 'Full name is required!').should('be.visible');
    cy.contains('ap-vmessage', 'User name is required!').should('be.visible');
    cy.contains('ap-vmessage', 'Password is required!').should('be.visible');
})

it('verifica mensagens de e-mail invalido', () => {
    cy.contains('a', 'Register now').click();
    cy.contains('button', 'Register').click();
    cy.get('input[formcontrolname="email"]').type('gabriela');
    cy.contains('ap-vmessage', 'Invalid e-mail').should('be.visible');
})

it('verifica mensagens de senha com menos de 8 caracteres', () => {
    cy.contains('a', 'Register now').click();
    cy.contains('button', 'Register').click();
    cy.get('input[formcontrolname="password"]').type('123');
    cy.contains('button', 'Register').click();
    cy.contains('ap-vmessage', 'Mininum length is 8').should('be.visible');
})

it('verifica mensagens de nome de usuario com menos de 2 caracteres', () => {
    cy.contains('a', 'Register now').click();
    cy.contains('button', 'Register').click();
    cy.get('input[formcontrolname="userName"]').type('a');
    cy.contains('button', 'Register').click();
    cy.contains('ap-vmessage', 'Mininum length is 2').should('be.visible');
})

it('verifica mensagens de nome de usuario com letra maiuscula', () => {
    cy.contains('a', 'Register now').click();
    cy.contains('button', 'Register').click();
    cy.get('input[formcontrolname="userName"]').type('GABI');
    cy.contains('button', 'Register').click();
    cy.contains('ap-vmessage', 'Must be lower case').should('be.visible');
})

it('verifica mensagens de nome completo com menos de 2 caracteres', () => {
    cy.contains('a', 'Register now').click();
    cy.contains('button', 'Register').click();
    cy.get('input[formcontrolname="fullName"]').type('A');
    cy.contains('button', 'Register').click();
    cy.contains('ap-vmessage', 'Mininum length is 2').should('be.visible');
})

it('fazer login de usuario valido', () => {
    cy.login('flavio', '123')
    cy.contains('a', '(Logout)').should('be.visible');
    })
})

it('fazer login de usuario invalido', () => {
    cy.login('gabriela', '1234')
    cy.on('window:alert', (str) => {
        expect(str).to.equal('Invalid user name or password')
    })
})

** Muito obrigada!!**

solução!

Ah que bom que está tudo bem contigo, por aqui está tudo ótimo! ;)

Acredito que localizei o erro, no seu caso de teste, aparentemente você fechou o }] antes da hora, vou lhe mostrar como está: Código da Gabriela

E o correto:

Solução para o caso da Gabriela

Segue o código corrigido (ele formatou de outra forma devido a minha extensão do VSCode, mas vai funcionar perfeitamente para você, também coloquei duas umas linhas de código que sempre coloco no inicio e indicaria colocar):

// 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;
});
describe("Login e registro de usuários alura pic", () => {
    beforeEach(() => {
        cy.visit("https://alura-fotos.herokuapp.com");
    });

    it("verifica mensagens validacao", () => {
        cy.contains("a", "Register now").click();
        cy.contains("h4", "Register to embrace a new world!").should(
            "be.visible"
        );
        cy.contains("button", "Register").click();
        cy.contains("ap-vmessage", "Email is required!").should("be.visible");
        cy.contains("button", "Register").click();
        cy.contains("ap-vmessage", "Full name is required!").should(
            "be.visible"
        );
        cy.contains("ap-vmessage", "User name is required!").should(
            "be.visible"
        );
        cy.contains("ap-vmessage", "Password is required!").should(
            "be.visible"
        );
    });

    it("verifica mensagens de e-mail invalido", () => {
        cy.contains("a", "Register now").click();
        cy.contains("button", "Register").click();
        cy.get('input[formcontrolname="email"]').type("gabriela");
        cy.contains("ap-vmessage", "Invalid e-mail").should("be.visible");
    });

    it("verifica mensagens de senha com menos de 8 caracteres", () => {
        cy.contains("a", "Register now").click();
        cy.contains("button", "Register").click();
        cy.get('input[formcontrolname="password"]').type("123");
        cy.contains("button", "Register").click();
        cy.contains("ap-vmessage", "Mininum length is 8").should("be.visible");
    });

    it("verifica mensagens de nome de usuario com menos de 2 caracteres", () => {
        cy.contains("a", "Register now").click();
        cy.contains("button", "Register").click();
        cy.get('input[formcontrolname="userName"]').type("a");
        cy.contains("button", "Register").click();
        cy.contains("ap-vmessage", "Mininum length is 2").should("be.visible");
    });

    it("verifica mensagens de nome de usuario com letra maiuscula", () => {
        cy.contains("a", "Register now").click();
        cy.contains("button", "Register").click();
        cy.get('input[formcontrolname="userName"]').type("GABI");
        cy.contains("button", "Register").click();
        cy.contains("ap-vmessage", "Must be lower case").should("be.visible");
    });

    it("verifica mensagens de nome completo com menos de 2 caracteres", () => {
        cy.contains("a", "Register now").click();
        cy.contains("button", "Register").click();
        cy.get('input[formcontrolname="fullName"]').type("A");
        cy.contains("button", "Register").click();
        cy.contains("ap-vmessage", "Mininum length is 2").should("be.visible");
    });

    it("fazer login de usuario valido", () => {
        cy.login("flavio", "123");
        cy.contains("a", "(Logout)").should("be.visible");
    });

    it("fazer login de usuario invalido", () => {
        cy.login("gabriela", "1234");
        cy.on("window:alert", (str) => {
            expect(str).to.equal("Invalid user name or password");
        });
    });
});

Lembrando também que qualquer dúvida, pode voltar a chamar no portal da Alura ou me contatar no Linkedin também que eu tentarei lhe auxiliar! Se caso eu consegui te auxiliar, poderia marcar como solucionado a minha resposta?

Muito obrigada pela ajuda, Diogo. Deu certinho!!