Gestion des alertes Selenium et des fenêtres contextuelles : comment gérer ?

Qu’est-ce qu’Alert dans Selenium ?

An Alerte en sélénium est un petit message box qui apparaît à l'écran pour donner à l'utilisateur des informations ou une notification. Il informe l'utilisateur de certaines informations ou erreurs spécifiques, demande l'autorisation d'effectuer certaines tâches et fournit également des messages d'avertissement.

Dans ce tutoriel, nous apprendrons comment gérer les popups dans Selenium et les différents types d'alertes trouvées dans l'application Web. Essais. Nous verrons également comment gérer l'alerte dans Selenium WebDriver et apprendre comment accepter et rejeter l'alerte en fonction des types d'alerte.

Types d’alertes dans Selenium

1) Simple Alert

Le simple alert La classe Selenium affiche des informations ou des avertissements à l'écran.

Simple Alert

2) Prompt Alert

Cette Prompt Alert demande une saisie à l'utilisateur et Selenium webdriver peut saisir le texte à l'aide de sendkeys (« input…. »).

Prompt Alert

3) Confirmation Alert

Cette confirmation alert demande la permission d’effectuer un certain type d’opération.

Confirmation Alert

Comment gérer l'alerte dans Selenium WebDriver

L'interface d'alerte fournit les quelques méthodes ci-dessous qui sont largement utilisées dans Pilote Web Selenium.

1) annuler le rejet() // Cliquer sur le bouton 'Annuler' de l'alerte.

driver.switchTo().alert().dismiss();

2) annuler accepter()// Cliquer sur le bouton 'OK' de l'alerte.

driver.switchTo().alert().accept();

3) Chaîne getText() // Pour capturer le message d'alerte.

driver.switchTo().alert().getText();

4) void sendKeys (String stringToSend) // Pour envoyer des données à alerter box.

driver.switchTo().alert().sendKeys("Text");

Vous pouvez voir un certain nombre de méthodes d'alerte affichées, comme indiqué dans l'écran ci-dessous suggéré par Eclipse.

Nous pouvons facilement passer à l'alerte depuis la fenêtre principale en utilisant Selenium .basculer vers() méthode.

Gérer l'alerte dans Selenium WebDriver

Nous automatisons maintenant le scénario ci-dessous.

Dans ce scénario, nous utiliserons le site de démonstration Guru99 pour illustrer la gestion des alertes Selenium.

Étape 1) Lancez le navigateur Web et ouvrez le site https://demo.guru99.com/test/delete_customer.php

Étape 2) Entrez n’importe quel identifiant client.

Gérer l'alerte dans Selenium WebDriver

Étape 3) Après avoir saisi l'identifiant client, cliquez sur le bouton « Soumettre ».

Gérer l'alerte dans Selenium WebDriver

Étape 4) Rejeter/accepter l'alerte.

Gérer l'alerte dans Selenium WebDriver

Gestion de l'alerte dans Selenium Webdriver

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");
		WebDriver driver = new ChromeDriver();
	
        
        // Alert Message handling
                    		
        driver.get("https://demo.guru99.com/test/delete_customer.php");			
                            		
     	      	
        driver.findElement(By.name("cusid")).sendKeys("53920");					
        driver.findElement(By.name("submit")).submit();			
        		
        // Switching to Alert        
        Alert alert = driver.switchTo().alert();		
        		
        // Capturing alert message.    
        String alertMessage= driver.switchTo().alert().getText();		
        		
        // Displaying alert message		
        System.out.println(alertMessage);	
        Thread.sleep(5000);
        		
        // Accepting alert		
        alert.accept();		
    }	

}
		

Sortie :

Lorsque vous exécutez le code ci-dessus, il lance le site. Essayez de supprimer l'ID client en gérant confirmation alert qui s'affiche à l'écran, supprimant ainsi l'identifiant client de l'application.

Comment gérer la fenêtre contextuelle à l'aide de Selenium Webdriver

En automatisation, quand on a plusieurs windows dans n'importe quelle application Web, l'activité peut nécessiter de basculer le contrôle entre plusieurs windows de l'un à l'autre afin de compléter l'opération. Une fois l'opération terminée, il doit revenir à la fenêtre principale, c'est-à-dire la fenêtre parent de Selenium. Nous verrons cela plus loin dans l’article avec un exemple.

Dans le pilote Web Selenium, il existe des méthodes grâce auxquelles nous pouvons gérer plusieurs windows.

Driver.getWindowHandles();

Pour gérer tous les ouverts windows par pilote Web, nous pouvons utiliser « Driver.getWindowHandles() » puis nous pouvons basculer la fenêtre d'une fenêtre à une autre dans une application Web. Son type de retour est Iterator .

Driver.getWindowHandle();

Lorsque le site s'ouvre, nous devons gérer la fenêtre principale en driver.getWindowHandle(). Cela gérera la fenêtre actuelle qui l'identifie de manière unique dans cette instance de pilote. Son type de retour est String.

Pour la gestion des fenêtres dans Selenium, nous suivrons les étapes ci-dessous :

Maintenant, nous allons automatiser le scénario ci-dessous pour voir comment gérer plusieurs windows en utilisant le pilote Web Selenium.

Dans ce scénario, nous utiliserons le site de démonstration « Guru99 » pour illustrer la gestion des fenêtres.

Étape 1) Lancez le site.

Lancez le navigateur et ouvrez le site https://demo.guru99.com/popup.php

Gérer la fenêtre contextuelle à l'aide de Selenium Webdriver

Étape 2) Cliquez sur le lien « Cliquez ici ».

Lorsque l'utilisateur clique sur le lien « Cliquez ici », une nouvelle fenêtre enfant s'ouvre.

Gérer la fenêtre contextuelle à l'aide de Selenium Webdriver

Étape 3) La nouvelle fenêtre enfant s'ouvre.

Une nouvelle fenêtre s'ouvre, demandez à l'utilisateur de saisir email identifiant et soumettez la page.

Gérer la fenêtre contextuelle à l'aide de Selenium Webdriver

Étape 4) Entrez votre email Identifiez-vous et soumettez.

Gérer la fenêtre contextuelle à l'aide de Selenium Webdriver

Étape 5) Affichez les informations d’identification d’accès lors de la soumission de la page.

Gérer la fenêtre contextuelle à l'aide de Selenium Webdriver

Lorsque vous exécutez le code, vous verrez que la fenêtre enfant est ouverte dans un nouvel onglet.

  1. Fermez la fenêtre Enfant sur laquelle les informations d'identification sont affichées.

Gérer la fenêtre contextuelle à l'aide de Selenium Webdriver

  1. Basculez vers la fenêtre parent.

Gérer la fenêtre contextuelle à l'aide de Selenium Webdriver

Comment gérer plusieurs Windows en sélénium

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) throws InterruptedException {									
        	WebDriver driver=new FirefoxDriver();			
        		
        //Launching the site.				
            driver.get("https://demo.guru99.com/popup.php");			
        driver.manage().window().maximize();		
                		
driver.findElement(By.xpath("//*[contains(@href,'popup.php')]")).click();			
        		
        String MainWindow=driver.getWindowHandle();		
        		
        // To handle all new opened window.				
            Set<String> s1=driver.getWindowHandles();		
        Iterator<String> i1=s1.iterator();		
        		
        while(i1.hasNext())			
        {		
            String ChildWindow=i1.next();		
            		
            if(!MainWindow.equalsIgnoreCase(ChildWindow))			
            {    		
                 
                    // Switching to Child window
                    driver.switchTo().window(ChildWindow);	                                                                                                           
                    driver.findElement(By.name("emailid"))
                    .sendKeys("gaurav.3n@gmail.com");                			
                    
                    driver.findElement(By.name("btnLogin")).click();			
                                 
			// Closing the Child Window.
                        driver.close();		
            }		
        }		
        // Switching to Parent window i.e Main Window.
            driver.switchTo().window(MainWindow);				
    }
}		

Sortie :

Lorsque vous exécutez le code ci-dessus, il lance le site et en cliquant sur le lien « Cliquez ici », il ouvre une fenêtre enfant dans un nouvel onglet. Vous pouvez fermer la fenêtre enfant, et basculer vers la fenêtre parent une fois l'opération terminée. Par conséquent, gérer plus d’une fenêtre dans l’application.

Gestion de plusieurs fenêtres dans Selenium
Gestion de plusieurs fenêtres dans Selenium

Conclusion

  • Nous avons défini les types d'alerte et les avons montrés avec une capture d'écran.
  • Démonstration de la gestion de l'alerte avec Selenium WebDriver à l'aide d'un scénario particulier.
  • Géré plusieurs windows avec Selenium WebDriver en utilisant un scénario particulier.