Neste tutorial, aprenderemos como lidar com pop-ups no Selenium e diferentes tipos de alertas encontrados no teste de aplicativos da web. Também veremos como lidar com o Alerta no Selenium WebDriver e aprenderemos como aceitamos e rejeitamos o alerta dependendo dos tipos de alerta.
Neste tutorial, você aprenderá-
- O que é alerta?
- Como lidar com o Alerta no Selenium WebDriver
- Como lidar com a janela Selenium Popup usando Webdriver
O que é alerta no selênio?
Um Alerta no Selenium é uma pequena caixa de mensagem que aparece na tela para dar ao usuário alguma informação ou notificação. Notifica o usuário com alguma informação ou erro específico, pede permissão para realizar certas tarefas e também fornece mensagens de aviso.
Aqui estão alguns alertas em tipos de selênio:
1) Alerta Simples
A classe de alerta simples no Selenium exibe algumas informações ou avisos na tela.
2) Alerta de prompt.
Este alerta de prompt pede alguma entrada do usuário e o webdriver Selenium pode inserir o texto usando as teclas de envio ("input
… ").3) Alerta de confirmação.
Este alerta de confirmação pede permissão para fazer algum tipo de operação.
Como lidar com o Alerta no Selenium WebDriver
A interface de alerta fornece alguns métodos abaixo que são amplamente usados no Selenium Webdriver.
1) void despedir () // Para clicar no botão 'Cancelar' do alerta.
driver.switchTo (). alert (). dispense ();
2) void accept () // Para clicar no botão 'OK' do alerta.
driver.switchTo (). alert (). accept ();
3) String getText () // Para capturar a mensagem de alerta.
driver.switchTo (). alert (). getText ();
4) void sendKeys (String stringToSend) // Para enviar alguns dados para a caixa de alerta.
driver.switchTo (). alert (). sendKeys ("Texto");
Você pode ver que vários métodos de Alerta são exibidos conforme mostrado na tela abaixo sugerida pelo Eclipse.
Podemos facilmente mudar para alerta na janela principal usando o método .switchTo () do Selenium .
Agora, automatizamos o cenário abaixo.
Neste cenário, usaremos o site de demonstração Guru99 para ilustrar o manuseio do Alerta Selenium.
Etapa 1) Abra o navegador da web e abra o site "http://demo.guru99.com/test/delete_customer.php"
Etapa 2) Insira qualquer ID de cliente.
Passo 3) Após inserir o ID do cliente, clique no botão "Enviar".
Etapa 4) Rejeitar / aceitar o alerta.
Manipulando Alerta no Selenium Webdriver usando o cenário acima
import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.NoAlertPresentException;import org.openqa.selenium.Alert;public class AlertDemo {public static void main (String [] args) throws NoAlertPresentException, InterruptedException {System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Driver WebDriver = novo ChromeDriver ();// Manipulação de mensagens de alertadriver.get ("http://demo.guru99.com/test/delete_customer.php");driver.findElement (By.name ("cusid")). sendKeys ("53920");driver.findElement (By.name ("submit")). submit ();// Mudando para AlertaAlert alert = driver.switchTo (). Alert ();// Capturando mensagem de alerta.String alertMessage = driver.switchTo (). Alert (). GetText ();// Exibindo mensagem de alertaSystem.out.println (alertMessage);Thread.sleep (5000);// Aceitando alertaalert.accept ();}}
Resultado :
Quando você executa o código acima, ele inicia o site. Tente excluir o ID do cliente manipulando o alerta de confirmação que é exibido na tela e, assim, excluindo o ID do cliente do aplicativo.
Como lidar com a janela pop-up do Selenium usando o Webdriver
Na automação, quando temos várias janelas em qualquer aplicativo da web, a atividade pode precisar alternar o controle entre várias janelas de uma para outra para concluir a operação. Após a conclusão da operação, ele deve retornar à janela principal, ou seja, à janela pai no Selenium. Veremos isso mais adiante no artigo com um exemplo.
No driver da web Selenium, existem métodos através dos quais podemos lidar com várias janelas.
Driver.getWindowHandles ();
Para controlar todas as janelas abertas pelo driver da web, podemos usar "Driver.getWindowHandles ()" e, em seguida, podemos alternar a janela de uma janela para outra em um aplicativo da web. Seu tipo de retorno é Iterator
Driver.getWindowHandle ();
Quando o site for aberto, precisamos manipular a janela principal por driver.getWindowHandle () . Isso tratará a janela atual que o identifica exclusivamente nesta instância do driver. Seu tipo de retorno é String.
Para manipulação de janela no Selenium, seguiremos as etapas abaixo:
Agora, vamos automatizar o cenário abaixo para ver como lidar com várias janelas usando o Selenium Webdriver.
Neste cenário, usaremos o site de demonstração "Guru99" para ilustrar o manuseio de janelas.
Etapa 1) Abra o site.
Abra o navegador e abra o site " http://demo.guru99.com/popup.php "
Etapa 2) Clique no link "Clique aqui".
Quando o usuário clica no link "Clique aqui", uma nova janela secundária é aberta.
Etapa 3) Abre-se uma nova janela filha.
Uma nova janela é aberta, peça ao usuário para inserir a id do e-mail e enviar a página.
Etapa 4) Digite seu ID de e-mail e envie.
Etapa 5) Exibir as credenciais de acesso ao enviar a página.
Ao executar o código, você verá que a janela filha é aberta em uma nova guia.
- Feche a janela Criança na qual as credenciais são exibidas.
- Mude para a janela principal.
Lidar com várias janelas no webdriver Selenium usando o cenário acima.
import java.util.Iterator;import java.util.Set;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;public class WindowHandle_Demo {public static void main (String [] args) aciona InterruptedException {Driver WebDriver = novo FirefoxDriver ();// Lançamento do site.driver.get ("http://demo.guru99.com/popup.php");driver.manage (). window (). maximize ();driver.findElement (By.xpath ("// * [contains (@ href, 'popup.php')]")). click ();String MainWindow = driver.getWindowHandle ();// Para lidar com todas as novas janelas abertas.Definas1 = driver.getWindowHandles ();Iterator i1 = s1.iterator ();while (i1.hasNext ()){String ChildWindow = i1.next ();if (! MainWindow.equalsIgnoreCase (ChildWindow)){// Mudando para janela filhodriver.switchTo (). window (ChildWindow);driver.findElement (By.name ("emailid")).sendKeys (" Este endereço de e-mail está protegido contra spambots. Você precisa de Javascript habilitado para vê-lo.");driver.findElement (By.name ("btnLogin")). click ();// Fechando a janela filho.driver.close ();}}// Mudar para a janela principal, ou seja, janela principal.driver.switchTo (). window (MainWindow);}}
Resultado:
Ao executar o código acima, ele inicia o site e ao clicar no link "Clique aqui", abre uma janela filho em uma nova aba. Você pode fechar a janela-filho e alternar para a janela-pai assim que a operação estiver completamente concluída. Conseqüentemente, manipulando mais de uma janela no aplicativo.
Manuseio de janela múltipla em selênio
Conclusão:
- Definimos os tipos de alerta e os mostramos com uma captura de tela.
- Demonstrado como lidar com o Alerta com Selenium WebDriver usando um cenário específico.
- Manipulou várias janelas com Selenium WebDriver usando um cenário particular.