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.
- Zamknij okno Dziecko, w którym są wyświetlane poświadczenia.
- 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.Sets1 = 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.