how handle windows pop up selenium using autoit
Este tutorial explica vários métodos para lidar com janelas pop-up no Selenium sempre que a automação sai do escopo usando a ferramenta AutoIT:
AutoIT é uma ferramenta de terceiros que dá ao Selenium uma ajuda para lidar com pop-ups como pop-up de autenticação do Windows, aplicativos Flash, aplicativos de desktop e assim por diante.
O Selenium é limitado apenas para automatizar aplicativos da web. Em alguns casos, um pop-up do Windows pode aparecer no aplicativo que o Selenium não pode controlar. Para lidar com esses cenários, o AutoIT dá uma ajuda, cuidando da automação de aplicativos pop-up e de desktop do Windows.
=> Visite aqui para ver a série de treinamento Selenium For All.
O que você aprenderá:
Visão geral da ferramenta AutoIT
Aqui está um tutorial em vídeo:
Lidar com janelas pop-up usando AutoIT
AutoIT é uma ferramenta de terceiros usada para lidar com aplicativos baseados no Windows. A linguagem de script usada é chamada VBScript.AutoIt também é um freeware. Ele usa uma combinação demovimento do mouse e pressionamentos do teclado para automatizar as ações que não são possíveis de serem feitas pelo driver da web selenium.
AutoIt é usado no formato .exe para que possa ser usado no script de automação do Selenium.
Vejamos um exemplo, onde precisaríamos enviar um arquivo para o aplicativo.
O cenário é fazer upload de uma foto de perfil no LinkedIn. As etapas de teste para este cenário são:
- Insira o URL
- Digite um nome de usuário e senha válidos e faça login.
- Clique no ícone de upload de perfil.
- O pop-up do Windows aparece onde o caminho para carregar uma imagem é inserido.
Até a etapa 3, a Selenium Automation pode lidar com isso. Quando o pop-up do Windows aparece, o script AutoIT é usado para automatizar essa parte.
Agora, vamos dar uma olhada em como automatizar ações no pop-up do Windows?
Isso pode ser tratado de 4 maneiras diferentes.
- Usando comandos do Windows para carregar um arquivo específico.
- Usando comandos de controle para fazer upload de um arquivo.
- Usando o argumento da linha de comando para especificar o FileName a ser carregado.
- Usando a ferramenta de registro AutoIT.
Todos os scripts são criados usando AutoItScriptEditor, que está disponível no pacote da pasta AutoIt.
Navegar para AutoIt3> SciTE> SciTE.exe e abra o aplicativo ScriptEditor.
# 1) Usando comandos do Windows
Temos vários conjuntos de funções no AutoIt.
Você pode dar uma olhada aqui. Agora, para automatizar as ações pop-up do Windows, vamos primeiro analisar as ações. Esses incluem:
- Defina o foco para a janela atual.
- Digite o caminho do nome do arquivo a ser carregado na caixa FileName.
- Clique no botão Abrir ou pressione Enter no teclado.
Vamos entender os pontos acima em detalhes:
- Defina o foco para a janela atual
WinWaitActive : Define o foco do cursor para o nome da janela especificado. Nesse caso, o título da janela é ‘Abrir’. Portanto, especificamos o comando comoWinWaitActive (“Abrir”).
Observe que o mesmo título do Windows difere para cada navegador.
Dizer, para Firefox , é ‘File Upload’, - Então o comando AutoIT seráWinWaitActive (“Upload de arquivo”).
Para o IE, é ‘Arquivo para upload’ - então o comando AutoIT seráWinWaitActive (“Arquivo para upload”)
Para Chrome , é ‘Aberto’ - então o comando AutoIT seráWinWaitActive (“Aberto”)
Você deve especificar o título da janela com base no navegador usado para automação.
2 Insira o caminho do nome do arquivo para fazer o upload na caixa Nome do arquivo
Mandar - envia batidas do teclado ou em outras palavras, simula ações do teclado.
As ações podem ser pressionando a tecla Enter, a tecla Shift, etc. OU digitando uma string, número, etc. Neste exemplo, eu preciso digitar o nome do arquivo, então uso o comando para inserir o nome do arquivo na janela. -Enviar (“D: passport.jpg”)
3 - Clique no botão Abrir ou pressione Enter no teclado
Enviar ({ENTER})- envia a tecla ENTER para a janela, que por sua vez completa a ação de upload.
como é um modem?
Salve o script criado em qualquer local. Ele será salvo no formato .au3. Depois de salvo, clique com o botão direito do mouse no arquivo .au3 e compile-o.
Após a compilação, ele é convertido para o formato .exe (formato executável). Este arquivo é o que usamos no script Selenium.
Depois que o arquivo .exe é criado, você pode usar o arquivo no script de automação do Selenium para executar os comandos nele
Runtime.getRuntime.exec (“especifique o nome do arquivo autoIt exe aqui”)
# 2) Usando comandos de controle
Temos certos comandos de controle no AutoIT para realizar ações. Aqui está a lista de comandos de controle no AutoIT.
Vamos ver como automatizar o mesmo cenário de upload de arquivo usando esses comandos de controle do AutoIT.
Agora em ordem para automatizar o pop-up do Windows, as seguintes ações devem ser realizadas:
- Defina o foco para a janela atual.
- Digite o caminho do nome do arquivo a ser carregado na caixa FileName.
- Clique no botão Abrir ou pressione Enter no teclado.
Vamos entender os pontos acima em detalhes:
- Defina o foco para a janela atual
ControlFocus:Define o foco para o elemento especificado. Nesse caso, definimos o foco para a caixa de texto de edição.
Quando você olha sua descrição, você pode ver que requer um ou mais parâmetros. Podemos passar esses parâmetros usando a ferramenta Windows Info do AutoIt.
Vamos abra o aplicativo AutoIT conforme abaixo:
A ferramenta Windows Info é aberta da seguinte forma:
Esta ferramenta é usada para inspecionar elementos no aplicativo / pop-up do Windows.
Para obter vários atributos de cada elemento no pop-up do Windows, arraste o ícone ‘Finder’ da Ferramenta de Informações do Windows e clique no elemento para exibir suas propriedades conforme abaixo.
Temos suas propriedades exibidas na ferramenta conforme mostrado.
Para a caixa FileName, as propriedades e seus valores correspondentes são:
- Título - Aberto
- ClassName - Editar
- Instância - 1
Usando essas propriedades, podemos passar os parâmetros para o comando de controle.
Agora, a fim de definir o foco para a caixa FileName, chamamos o comando ‘ControlFocus’ como abaixo:
- Sintaxe: ControlFocus (“title”, “text”, controlID)
- O ‘título’ corresponde ao título exibido na ferramenta.
- Id de controle é a combinação de ClassName + Instance na ferramenta
ControlFocus (“Abrir”, ””, ”Editar1”)
Onde,
- Aberto - é o título
- Edit1 - é o controlID (controlID = ClassName + Instance)
2 Insira o caminho do nome do arquivo para fazer upload na caixa Nome do arquivo
ControlSetText - digita o texto para o elemento.
- Sintaxe: ControlSetText (“title”, “text”, controlID, “new text” (, flag = 0))
No nosso caso, temos o nome do arquivo na caixa de texto.
ControlSetText (“Abrir”, ””, ”Edit1”, “D: passport.jpg”)
Onde,
- Aberto - é o título
- Edit1 - é o controlID (controlID = ClassName + Instance)
- D: passport.jpg - é o nome do arquivo a ser carregado
3 - Clique no botão Abrir ou pressione Enter no teclado
ControlClick - executa uma ação de clique no elemento. Neste exemplo, clicamos no botão ‘Abrir’
- Sintaxe: ControlClick (“título”, “texto”, ID de controle (, botão = “esquerda” (, cliques = 1 (, x (, y)))))
No nosso caso, deve clicar no botão ‘Abrir’ na janela pop-up do Windows.
ControlClick (“Abrir”, ””, ”Botão1”)
Onde,
- Aberto - é o título
- Button1 - é o controlID (controlID = ClassName + Instance)
Chamamos o arquivo .exe do código Selenium usando o comando-Runtime.getRuntime.exec (“especifique o nome do arquivo autoIt exe aqui”)
NOTA: Quando temos que fazer upload de vários arquivos em uma única instância, podemos especificar todos os nomes de arquivos em uma variável e passar o nome da variável no comando.
ControlFocus - define o foco para o elemento.
$ files - é a variável criada e contém o texto / nome do arquivo a ser carregado.
ControlSetText - passa a variável que contém os nomes dos arquivos a serem carregados para o elemento ‘Editar’.
ContolClick - executa uma ação de clique no elemento.
# 3) Usando linha de comando para especificar o nome do arquivo a ser carregado
O mesmo procedimento pode ser abordado de uma maneira diferente em que o nome do arquivo é obtido do usuário. Isso é feito usando a abordagem de linha de comando.
Em vez de especificar diretamente o nome do arquivo no AutoIT, o passamos no código Selenium conforme abaixo:
Script AutoIT: (Upload.exe)
ControlFocus(“Open”,””,”Edit1”) ControlSetText(“Open”,””,”Edit1”,$cmdLine(1)) ControlClick(“Open”,””,”Button1”)
Código de selênio:
Nós o especificamos como:
Runtime.getRuntime.exec(“Path of .exe file”+””+ “FileToUpload”)
Neste caso, será
Runtime.getRuntime.exec(“D:automationUpload.exe”+””+ “D:automationimage.jpg”)
Salve o arquivo criado e compile-o para convertê-lo em um formato executável.
# 4) Usando o Recurso de Registro do AutoIT
Este recurso está disponível apenas nas versões abaixo de 3.3.14.0. Versões superiores a essa não suportam esse recurso.
Para abrir a ferramenta de registro, navegue até AutoIt3> Extras> Au3Record> Au3Record.exe
Quando começarmos a usar isso, sempre certifique-se de desmarcar a opção ‘Gravar mouse’, já que a interação do mouse varia para cada resolução de tela. Sempre registre as batidas do teclado.
Selecione ‘Clique para gravar’ na ferramenta e as ações serão gravadas nela.
Quando terminar de gravar, selecione ‘Click to Stop’ e salve o arquivo
Você pode abrir o arquivo .au3 salvo para ver os comandos criados para cada ação que você executou
Compile o script e converta-o em um arquivo .exe.
O arquivo .exe criado pode ser usado diretamente no código Selenium para execução conforme abaixo:
Runtime.getRuntime.exec(“D:automationRecord.exe”)
Conclusão
Assim, qualquer pop-up do Windows como autenticação ou upload de arquivo ou arquivo aberto, etc. pode ser manipulado usando AutoIT incluindo seu arquivo de script no Selenium.
No próximo capítulo, aprenderemos sobre outra ferramenta de terceiros chamada Sikuli, que é usada para automatizar aplicativos usando a técnica de reconhecimento de imagem.
=> Visite aqui para aprender o selênio do zero.
Leitura recomendada
- Como lidar com alertas / pop-ups no Selenium WebDriver - Tutorial do Selenium nº 16
- Tutorial Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- As 10 principais exceções ao selênio e como lidar com elas (código exato)
- Introdução ao Selenium WebDriver - Selenium Tutorial # 8
- Tutorial do AutoIt - Download do AutoIt, instalação e script básico do AutoIt
- Tutorial do ChromeDriver Selenium: testes do Selenium Webdriver no Chrome
- 30+ Melhores Tutoriais de Selênio: Aprenda Selênio com Exemplos Reais
- Oportunidade de trabalho de meio período para especialistas em selênio