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

[Dúvida] Dúvida sobre identificação dos itens no código???

Nos exercícios finais da aula 2 fiquei com dúvida na seguinte situação:

 it('Verifica mensagem de texto', () =>{
        cy.contains('p', 'Quem ama adota!').should('be.visible')
    })

ou

it('Verifica mensagem de texto', () =>{
        it('Clica no botão para o menu de Cadastro', () => {
        cy.visit('https://adopet-frontend-cypress.vercel.app/');
        cy.contains('a', 'Cadastrar').click();
    })

Em ambos os casos o seletor de elementos do navegador identificou as classes ('a' e 'p') mas na linha abaixo, não encontrei como "eq" mas sim como 'img'.

it('deve clicar no botão ‘Ver pets disponíveis para adoção”', () => {
        cy.title().should('eq', 'AdoPet');

Estou em dúvida do motivo de ser usado 'eq'??

2 respostas

Também fiquei com essa dúvida, de onde saiu essa opção de "cy.title()"???

solução!

Olá, Cristian e Fabiano!

Em primeiro lugar, parabéns por terem notado essas diferenças e gostaria de esclarecer que a ideia dos exercícios, para além da prática, é trazer mais funcionalidades do Cypress. A ferramenta é gigantesca e é interessante explorar seus recursos.

Vamos entender juntos a dúvida sobre o uso do .should('eq', 'AdoPet') no código!

No Cypress, o comando .should('eq', 'AdoPet') é usado para fazer uma asserção, ou seja, verificar se um valor específico é igual a outro valor esperado. No seu caso, você está verificando se o título da página (cy.title()) é igual a "AdoPet".

Aqui está um exemplo prático para ilustrar melhor:

it('deve clicar no botão ‘Ver pets disponíveis para adoção”', () => {
    cy.visit('https://adopet-frontend-cypress.vercel.app/');
    cy.title().should('eq', 'AdoPet'); // Verifica se o título da página é 'AdoPet'
    cy.contains('a', 'Ver pets disponíveis para adoção').click(); // Clica no link com o texto específico
});

Nesse trecho, o cy.title() obtém o título da página e o .should('eq', 'AdoPet') verifica se esse título é exatamente "AdoPet". Isso é diferente de selecionar elementos HTML como p ou a, que são usados para localizar e interagir com elementos específicos na página.

Para comparar, veja como você verifica a visibilidade de um parágrafo:

it('Verifica mensagem de texto', () => {
    cy.contains('p', 'Quem ama adota!').should('be.visible'); // Verifica se o parágrafo com o texto específico está visível
});

Aqui, cy.contains('p', 'Quem ama adota!') localiza um parágrafo (p) que contém o texto "Quem ama adota!", e o .should('be.visible') verifica se esse parágrafo está visível na página.

Espero que isso tenha esclarecido a diferença entre usar eq para asserções e selecionar elementos HTML como p ou a. Bons estudos e continue praticando!

Espero ter ajudado e bons estudos!