Alerte au sélénium & Gestion des fenêtres contextuelles: comment gérer?

Table des matières:

Anonim

Dans ce didacticiel, nous allons apprendre à gérer les popups dans Selenium et les différents types d'alertes trouvées dans les tests d'applications Web. Nous verrons également comment gérer l'alerte dans Selenium WebDriver et comment acceptons et rejetons l'alerte en fonction des types d'alertes.

Dans ce didacticiel, vous apprendrez-

  • Qu'est-ce qu'Alerte?
  • Comment gérer l'alerte dans Selenium WebDriver
  • Comment gérer la fenêtre contextuelle Selenium à l'aide de Webdriver

Qu'est-ce qu'Alerte dans Selenium?

Une alerte dans Selenium est une petite boîte de message qui apparaît à l'écran pour donner à l'utilisateur des informations ou une notification. Il informe l'utilisateur avec des informations spécifiques ou une erreur, demande l'autorisation d'effectuer certaines tâches et fournit également des messages d'avertissement.

Voici quelques alertes dans les types de sélénium:

1) Alerte simple

La classe d'alerte simple de Selenium affiche des informations ou des avertissements à l'écran.

2) Alerte rapide.

Cette alerte rapide demande une entrée de l'utilisateur et le pilote Web Selenium peut saisir le texte à l'aide de sendkeys ("input

…. ").

3) Alerte de confirmation.

Cette alerte de confirmation demande l'autorisation d'effectuer un certain type d'opération.

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 Selenium Webdriver.

1) void ignore () // Cliquer sur le bouton 'Annuler' de l'alerte.

driver.switchTo (). alert (). ignore ();

2) void accept () // Cliquer sur le bouton 'OK' de l'alerte.

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

3) String getText () // Pour capturer le message d'alerte.

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

4) void sendKeys (String stringToSend) // Pour envoyer des données à la boîte d'alerte.

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

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

Nous pouvons facilement passer en alerte depuis la fenêtre principale en utilisant la méthode .switchTo () de Selenium .

Maintenant, nous automatisons 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 "http://demo.guru99.com/test/delete_customer.php"

Étape 2) Saisissez un identifiant de client.

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

Étape 4) Rejetez / acceptez l'alerte.

Gestion des alertes dans Selenium Webdriver à l'aide du scénario ci-dessus

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) lève NoAlertPresentException, InterruptedException {System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Pilote WebDriver = nouveau ChromeDriver ();// Gestion des messages d'alertedriver.get ("http://demo.guru99.com/test/delete_customer.php");driver.findElement (Par.nom ("cusid")). sendKeys ("53920");driver.findElement (Par.nom ("soumettre")). submit ();// Passage à l'alerteAlert alert = driver.switchTo (). Alert ();// Capture du message d'alerte.Chaîne alertMessage = driver.switchTo (). Alert (). GetText ();// Affichage du message d'alerteSystem.out.println (alertMessage);Thread.sleep (5000);// Accepter l'alertealert.accept ();}}

Production :

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

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

Dans l'automatisation, lorsque nous avons plusieurs fenêtres dans une application Web, l'activité peut avoir besoin de basculer le contrôle entre plusieurs fenêtres de l'une à l'autre afin de terminer 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 permettant de gérer plusieurs fenêtres.

Driver.getWindowHandles ();

Pour gérer toutes les fenêtres ouvertes par le pilote Web, nous pouvons utiliser "Driver.getWindowHandles ()" puis nous pouvons passer 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 par 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 fenêtres à l'aide de Selenium Webdriver.

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 " http://demo.guru99.com/popup.php "

Étape 2) Cliquez sur le lien "Cliquez ici".

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

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

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

Étape 4) Entrez votre identifiant de courriel et soumettez.

Étape 5) Affichez les informations d'identification lors de la soumission de la page.

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 dans laquelle les informations d'identification sont affichées.
  1. Basculez vers la fenêtre parent.

Gestion de plusieurs fenêtres dans Selenium Webdriver à l'aide du scénario ci-dessus.

import java.util.Iterator;import java.util.Set;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;classe publique WindowHandle_Demo {public static void main (String [] args) lance InterruptedException {Pilote WebDriver = nouveau FirefoxDriver ();// Lancement du site.driver.get ("http://demo.guru99.com/popup.php");driver.manage (). window (). maximiser ();driver.findElement (By.xpath ("// * [contient (@ href, 'popup.php')]")). click ();Chaîne MainWindow = driver.getWindowHandle ();// Pour gérer toute nouvelle fenêtre ouverte.Définissez  s1 = driver.getWindowHandles ();Itérateur  i1 = s1.iterator ();while (i1.hasNext ()){Chaîne ChildWindow = i1.next ();if (! MainWindow.equalsIgnoreCase (ChildWindow)){// Passage à la fenêtre enfantdriver.switchTo (). window (ChildWindow);driver.findElement (By.name ("emailid")).sendKeys (" Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.");driver.findElement (Par.nom ("btnLogin")). click ();// Fermeture de la fenêtre enfant.driver.close ();}}// Passage à la fenêtre Parent ie Fenêtre principale.driver.switchTo (). window (MainWindow);}}

Production:

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

Conclusion:

  • Nous avons défini les types d'alertes 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 fenêtres avec Selenium WebDriver en utilisant un scénario particulier.