Alerta de selênio & Manipulação de janela pop-up: como manipular?

Índice:

Anonim

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.

  1. Feche a janela Criança na qual as credenciais são exibidas.
  1. 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.Defina  s1 = 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.