O que é o que não é uma popup para automação web

Introdução

Seguidamente recebo e vejo sempre a mesma pergunta em fóruns, lista de discussões e em redes sociais: como automatizar um popup.

Só que muitos usam o termo popup errado! Quando trabalhamos com automação de teste cada coisa tem o seu nome. E esse nome é importante para definir, por exemplo, qual o comando que será utilizado e a estratégia de código que será aplicada.

Vou explicar o que a maioria confunde uma popup, o que é uma popup e como automatizar com Selenium WebDriver.

 

O que é uma popup

Um popup (comumente em inglês você verá o termo popup window) é uma janela!
Esta janela é criada através de Javascript e é utilizada para esconder certos itens visuais do browser e também definir um tamanho fixo para a janela.

Tecnicamente ela possui atributos para adicionar ou remover suas características:

  • URL: endereço de uma página que será apresentada na popup
  • Name: qual o target (onde ela vai abrir), podendo ser as targets que já conhecemos (_blank, _self, _parent, _top, name)
  • Fullscreen: se a popup abrirá em modo tela cheia. Valores “no”, “yes”, 0 (no) ou 1 (yes)
  • Menu Bar: se a popup irá ou não exibir a barra de menu. Valores “no”, “yes”, 0 (no) ou 1 (yes)
  • Tool Bar: se a popup irá ou não exibir a barra de ícones. Valores “no”, “yes”, 0 (no) ou 1 (yes)
  • Scrollbar: se a popup irá ou não exibir a barra de rolagem. Valores “no”, “yes”, 0 (no) ou 1 (yes)
  • Status: se a popup irá ou não exibir a barra e status. Valores “no”, “yes”, 0 (no) ou 1 (yes)
  • Widght: largura da janela. Valor mínimo de 100 pixels
  • Height: altura da janela. Valor mínimo de 100 pixels
  • Left: posição a esquerda da tela
  • Top: posição a direita da tela

Há outros parâmetros aceitáveis para uma popup. Consulte este link do W3Schools para visualizar os outros parâmetros.

 

Sintaxe exemplo

 

Como ela se parece?

exemplo_popup

 

Como testar?

Neste link você pode visualizar os principais atributos, modificá-los e testá-los.

Como automatizar com Selenium/WebDriver

Através do método getWindowHandle() ou getWindowHandles()

 

Alertas, Confirmações e Prompts

Estes são mais comuns, mas também amplamente confundidos com uma janela popup. Em inglês você pode achar o termo popup boxes, que pode ser o grande causador do erro.

Estes três itens são caixas criadas via Javascript, onde cada uma tem a sua responsabilidade.

Nos exemplos de cada um as imagens foram capturadas no browser Firefox. Outros browsers apresentam visualmente de forma diferente. Se você quiser ver esta diferença acesse os links na sessão Como testar com outros browsers.

 

Alertas

É utilizada para garantir que o usuário visualize um certo tipo de informação.
Está sendo substituída aos poucos por “pseudo-alertas”, geralmente criados com algum framework Javascript como JQuery.

 

Sintaxe exemplo

 

Como se parece

exemplo_popup_firefox

 

Como testar?

Neste link do W3Schools você pode executar um exemplo com uma alerta.

 

Como automatizar com Selenium/WebDriver

 

Confirmações

É utilizado para o usuário verificar ou aceitar algo. Possui sempre dois botões: um Cancel (Cancelar) e um OK.
Podemos ver este tipo de mensagem com frequência quando clicamos em botões ou links para remover registros.

Quando clicamos em OK ou Cancelar o retorno pode ser obtido e atribuído a alguma variável. É assim que conseguimos controlar se, por exemplo, iremos ou não excluir um registro.

 

Sintaxe exemplo

 

Como se parece?

exemplo_confirmacao_firefox

 

Como testar?

Neste link do W3Schools você pode executar um exemplo com uma confirmação.

 

Como automatizar com Selenium/WebDriver

 

Prompts

É utilizado para o usuário digitar alguma informação antes de ir para outra página. Antigamente era utilizado para efetuar filtros/pesquisas quando não existiam as requisições assíncronas.

Ele é identificado por um campo de texto junto da mensagem.

O texto digitado pode ser atribuído a uma variável e utilizado na página ou em outra página.

 

Sintaxe exemplo

 

Como se parece?

exemplo_prompt_firefox

 

Como testar?

Neste link do W3Schools você pode executar um exemplo com um prompt.

 

Como automatizar com Selenium/WebDriver

 

Janelas de Download

Janelas de download geralmente são apresentadas quando clicamos em um link (elemento <a>) que possui um atributo href diferente de imagens. Ex: arquivos pdf.

Eles são de responsabilidade do browser web e não dá página, logo não fazem parte do contexto da página HTML, e sim da aplicação desktop que é o browser. Logo ferramentas de automação funcional para web não irão identificar este tipo de janela.

 

Sintaxe exemplo

Através do atributo download para um link

Sem o atributo download no link, geralmente com um href diferente de imgens

 

Como se parece

janela_download_firefox

 

Como testar

Neste link do W3Schools você pode executar um exemplo de download de arquivo.

 

Como automatizar com Selenium/WebDriver

Não há como automatizar com Selenium/WebDriver por não pertencer a página HTML (não é um elemento web)

 

Conclusão

Espero que você tenha entendido o que é uma popup e os outros itens que causam esta confusão. E lembre-se de agora, quando for postar alguma dúvida sempre colocar o termo certo! 🙂

7 thoughts to “O que é o que não é uma popup para automação web”

  1. Elias, boa noite!

    Existe um link na página que ao clicar, a janela de impressão(aquela padrão do windows)é retornada.
    Não estou conseguindo tirar print da tela, e também não consigo capturar os elementos da mesma.

    Poderia me ajudar?

    Muito obrigado.

  2. Eu até entendo a confusão .além desses metodos javascript do próprio browser (alert,confirmation e prompt), você consegue fazer código que emule e deixe de usar os padrões do browser.
    E como é algo que “salta” na sua cara, pessoal se acostuma a dizer ‘popup’.. mesmo sabendo as diferenças..rsrs eu mesmo falo assim para facilitar a comunicação.

    O “popup” é o “bombril” da categoria de lã de aço.. 🙂

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *