Alert selenu & Obsługa wyskakujących okienek: jak sobie z tym poradzić?

Spisie treści:

Anonim

W tym samouczku nauczymy się, jak obsługiwać wyskakujące okienka w Selenium i różne typy alertów występujących w testowaniu aplikacji internetowych. Zobaczymy również, jak radzić sobie z alertem w Selenium WebDriver i dowiemy się, jak akceptujemy i odrzucamy alert w zależności od typów alertów.

W tym samouczku nauczysz się:

  • Co to jest alert?
  • Jak radzić sobie z alertami w Selenium WebDriver
  • Jak obsługiwać okno Selenium Popup za pomocą programu Webdriver

Co to jest alert w selenie?

Alert w Selen jest małe pudełko wiadomość, która pojawia się na ekranie, aby dać użytkownikowi informacje lub zawiadomienia. Powiadamia użytkownika o określonych informacjach lub błędach, prosi o pozwolenie na wykonanie określonych zadań, a także wyświetla komunikaty ostrzegawcze.

Oto kilka alertów w typach selenu:

1) Prosty alert

Prosta klasa alertów w Selenium wyświetla pewne informacje lub ostrzeżenia na ekranie.

2) Szybkie ostrzeżenie.

Ten alert zachęty wymaga pewnych danych wejściowych od użytkownika, a webdriver Selenium może wprowadzić tekst za pomocą sendkeys ("wejście

… ”).

3) Powiadomienie o potwierdzeniu.

Ten alert potwierdzający prosi o pozwolenie na wykonanie jakiejś operacji.

Jak radzić sobie z alertami w Selenium WebDriver

Interfejs alertów udostępnia poniżej kilka metod, które są szeroko stosowane w Selenium Webdriver.

1) void dismiss () // Aby kliknąć przycisk „Anuluj” alertu.

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

2) void accept () // Aby kliknąć przycisk „OK” alertu.

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

3) String getText () // Przechwytywanie komunikatu ostrzegawczego.

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

4) void sendKeys (String stringToSend) // Aby wysłać dane do skrzynki ostrzegawczej.

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

Możesz zobaczyć kilka metod alertów, które są wyświetlane, jak pokazano na poniższym ekranie sugerowanym przez Eclipse.

Możemy łatwo przełączyć się na alert z głównego okna za pomocą metody .switchTo () Selenium .

Teraz automatyzujemy podany poniżej scenariusz.

W tym scenariuszu wykorzystamy witrynę demonstracyjną Guru99, aby zilustrować obsługę Selenium Alert.

Krok 1) Uruchom przeglądarkę internetową i otwórz witrynę „http://demo.guru99.com/test/delete_customer.php”

Krok 2) Wprowadź dowolny identyfikator klienta.

Krok 3) Po wprowadzeniu identyfikatora klienta kliknij przycisk „Prześlij”.

Krok 4) Odrzuć / zaakceptuj ostrzeżenie.

Obsługa alertów w Selenium Webdriver przy użyciu powyższego scenariusza

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) rzuca NoAlertPresentException, InterruptedException {System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Sterownik WebDriver = nowy ChromeDriver ();// Obsługa komunikatów alarmowychdriver.get („http://demo.guru99.com/test/delete_customer.php”);driver.findElement (By.name ("cusid")). sendKeys ("53920");driver.findElement (By.name ("submit")). submit ();// Przełączanie na alertAlert alert = driver.switchTo (). Alert ();// Przechwytywanie komunikatu ostrzegawczego.String alertMessage = driver.switchTo (). Alert (). GetText ();// Wyświetlanie komunikatu ostrzegawczegoSystem.out.println (alertMessage);Thread.sleep (5000);// Przyjmowanie alertualert.accept ();}}

Wynik :

Po wykonaniu powyższego kodu uruchamia on witrynę. Spróbuj usunąć identyfikator klienta, obsługując alert potwierdzający wyświetlany na ekranie, a tym samym usuwając identyfikator klienta z aplikacji.

Jak obsługiwać wyskakujące okienko Selenium za pomocą programu Webdriver

W automatyzacji, gdy mamy wiele okien w dowolnej aplikacji internetowej, działanie może wymagać przełączenia sterowania między kilkoma oknami, aby zakończyć operację. Po zakończeniu operacji musi powrócić do okna głównego, czyli okna nadrzędnego w Selenium. Zobaczymy to dalej w artykule z przykładem.

W sterowniku sieciowym Selenium są metody, dzięki którym możemy obsługiwać wiele okien.

Driver.getWindowHandles ();

Aby obsłużyć wszystkie otwarte okna przez sterownik sieciowy, możemy użyć "Driver.getWindowHandles ()", a następnie możemy przełączać okno z jednego okna do drugiego w aplikacji internetowej. Jego typem zwracanym jest Iterator .

Driver.getWindowHandle ();

Po otwarciu strony musimy obsłużyć główne okno przez driver.getWindowHandle () . Spowoduje to obsługę bieżącego okna, które jednoznacznie identyfikuje je w tej instancji sterownika. Typ zwracany to String.

W przypadku obsługi okien w Selenium będziemy postępować zgodnie z poniższymi krokami:

Teraz zautomatyzujemy podany poniżej scenariusz, aby zobaczyć, jak obsługiwać wiele okien za pomocą Selenium Webdriver.

W tym scenariuszu do zilustrowania obsługi okien wykorzystamy witrynę demonstracyjną „Guru99”.

Krok 1) Uruchom witrynę.

Uruchom przeglądarkę i otwórz witrynę „ http://demo.guru99.com/popup.php

Krok 2) Kliknij łącze „Kliknij tutaj”.

Gdy użytkownik kliknie łącze „Kliknij tutaj”, zostanie otwarte nowe okno podrzędne.

Krok 3) Otworzy się nowe okno potomne.

Otworzy się nowe okno, poproś użytkownika o wprowadzenie identyfikatora e-mail i przesłanie strony.

Krok 4) Wprowadź swój identyfikator e-mail i prześlij.

Krok 5) Wyświetl poświadczenia dostępu podczas przesyłania strony.

Po wykonaniu kodu zobaczysz, że okno potomne jest otwarte w nowej karcie.

  1. Zamknij okno Dziecko, w którym są wyświetlane poświadczenia.
  1. Przejdź do okna nadrzędnego.

Obsługa wielu okien w webdriverze Selenium przy użyciu powyższego scenariusza.

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) rzuca InterruptedException {Sterownik WebDriver = nowy FirefoxDriver ();// Uruchomienie witryny.driver.get („http://demo.guru99.com/popup.php”);driver.manage (). window (). maximize ();driver.findElement (By.xpath ("// * [zawiera (@ href, 'popup.php')]")). click ();String MainWindow = driver.getWindowHandle ();// Obsługa wszystkich nowo otwieranych okien.Set  s1 = driver.getWindowHandles ();Iterator  i1 = s1.iterator ();while (i1.hasNext ()){String ChildWindow = i1.next ();if (! MainWindow.equalsIgnoreCase (ChildWindow)){// Przełączanie do okna podrzędnegodriver.switchTo (). okno (ChildWindow);driver.findElement (By.name ("emailid")).sendKeys (" Ten adres e-mail jest chroniony przed robotami spamującymi. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript.");driver.findElement (By.name ("btnLogin")). click ();// Zamknięcie okna potomnego.driver.close ();}}// Przejście do okna nadrzędnego, czyli okna głównego.driver.switchTo (). okno (MainWindow);}}

Wynik:

Po wykonaniu powyższego kodu uruchamia on witrynę, a po kliknięciu linku „Kliknij tutaj” otwiera okno potomne w nowej karcie. Możesz zamknąć okno podrzędne i przełączyć się do okna nadrzędnego po zakończeniu operacji. Stąd obsługa więcej niż jednego okna w aplikacji.

Obsługa wielu okien w Selenium

Wniosek:

  • Zdefiniowaliśmy typy alertów i pokazaliśmy je na zrzucie ekranu.
  • Zademonstrowano obsługę Alertów za pomocą Selenium WebDriver przy użyciu określonego scenariusza.
  • Obsługa wielu okien z Selenium WebDriver przy użyciu określonego scenariusza.