image

Access unlimited bootcamps and 650+ courses

50
%OFF
Article image
Augusto Junior
Augusto Junior20/04/2025 01:33
Share

Guia Prático Cypress - Teste Caixas de Seleção

    Guia prático para seleção de Elementos

    Neste breve tutorial irei mostrar de forma objetivo como selecionarmos alguns elementos de caixa de seleção, e simultaneamente realizar uma breve verificação utilizando o .should()

    SELECIONANDO CHECBOXES

    Neste código abaixo é demonstrado como realizar uma seleção, bem como, é demonstrado como fazer mais uma seleção.

    it('Selecionando CheckBoxes', function () {
          cy.visit('https://rahulshettyacademy.com/AutomationPractice/')
          cy.get('#checkBoxOption1').check().should('be.checked').and('have.value', 'option1') // Método Check é mais especifico para isso
          //Forma de selecionar mais um checkbox de uma vez
          cy.get('input[type="checkbox"]').check(['option2', 'option3'])
      })
    

    Print do teste realizado:

    image

    SELECIONANDO DROPDOWNS / AUTOCOMPLETES

    Exemplo de uma seleção em dropdown

    it('Selecionando Dropdowns', function () {
          cy.visit('https://rahulshettyacademy.com/AutomationPractice/')
          cy.get('select').select('option2').should('have.value', 'option2')
    
      })
    

    Exemplo de uma seleção em um campo auto completável. Neste bloco de código utilizamos como auxilio o recurso "EACH", onde o mesmo realiza uma iteração dentro da "DIV" em que se encontra os textos e nos retorna um valor, tal valor é verificado através de um "IF" para nos certificarmos de que bate e/ou irá selecionar o texto que buscamos, no caso citado abaixo buscamos o país Índia. O texto Índia é armazenado dentro do "WRAP", que se trata do retorno de uma "PROMISE" (que seria o $el = Índia), e após a "PROMISE" retornada e validada, realizamos um click.

    it('Selecionando campos autocompletes dinamicamente', function () {
          cy.visit('https://rahulshettyacademy.com/AutomationPractice/')
          cy.get('#autocomplete').type('ind')
          cy.get('.ui-menu-item div').each(($el, index, $list) => {
              if ($el.text() === 'India') {
                  cy.wrap($el).click()
              }
          })
    
      })
    

    Print do teste realizado (Autocomplete)

    image

    SELECIONANDO RADIO BUTTONS

    Neste bloco de código fazemos também uma verificação opcional, ao selecionarmos um campo, podemos verificar se os outros estão desmarcados.

    it('Selecionado radioButtons', function () {
          cy.visit('https://rahulshettyacademy.com/AutomationPractice/')
          cy.get('input[value="radio2"]').check().should('be.checked')
          cy.get('input[value="radio1"]').should('not.be.checked')
      })
    

    Print do teste realizado

    image

    EXTRA: VERIFICANDO CAMPOS QUE SE OCULTAM

    Neste bloco de código demonstro um dos muitos desafios que é possível de encontrarmos em testes front end, itens que se ocultam. Neste caso em especifico é importante que façamos uma verificação com o uso do "SHOULD" para que o teste avance até o final. No caso desse teste, temos o auxilio de uma botão que realiza a ocultamento do campo de texto.

    it('Localizando recursos que são ocultados', function () {
          cy.visit('https://rahulshettyacademy.com/AutomationPractice/')
          cy.get('#displayed-text').should('be.visible')
          cy.get('#hide-textbox').click()
          cy.get('#displayed-text').should('not.be.visible')
          cy.get('#show-textbox').click()
      })
    

    Print do teste realizado

    image

    CONCLUSÃO

    Apesar de muito simples esses testes, eles são um pontapé inicial para testar as funcionalidades de um site, sendo que outros testes podem ser incorporados, principalmente se a aplicação possuir um banco de dados integrado, ou os campos de texto não aceitarem caracteres especiais.

    Share
    Recommended for you
    Microsoft 50 Anos - Prompts Inteligentes
    Microsoft 50 Anos - GitHub Copilot
    Microsoft 50 Anos - Computação em Nuvem com Azure
    Comments (2)
    Augusto Junior
    Augusto Junior - 24/04/2025 17:21

    Muito obrigado!.

    Minha sugestão seria realizar uma análise de elementos que serão testados neste projeto de maior escala, se possível, armazenar os locators dele em uma planilha. Além disso, recomendo o uso do métodos .as(alias), pois com ele é possível criar um "apelido" para um elemento que possa ter um número extenso de caracteres, e podendo renomea-lo de uma maneira mais clara, deixa o script de teste mais limpo e claro para qualquer pessoa que precisar utiliza-lo.


    Ex:

    cy.get('.products').as('productLocator')
    cy.wait(1000)
    cy.get('@productLocator').find('.product').each(($el, index, $list) => { const textVeg = $el.find('h4.product-name').text()
    if (textVeg.includes('Cashews')) {
    
      cy.wrap($el).find('button').click
      
    }
    

    Aqui foi atribuído ao elemento HTML .products, um alias de @productLocator, e o mesmo foi reutilizado logo abaixo.

    DIO Community
    DIO Community - 23/04/2025 11:37

    Parabéns, Augusto, pela excelente explicação! Você abordou de maneira clara e objetiva como utilizar o Cypress para testar caixas de seleção, dropdowns, radio buttons e elementos que se ocultam. A forma como você explicou cada parte do código, com exemplos práticos, é fundamental para quem está começando a aprender sobre testes automatizados.

    Qual seria a sua sugestão para quem quer aplicar esses testes em um projeto maior, que envolva integrações mais complexas e um número maior de interações?