how handle alerts popups selenium webdriver selenium tutorial 16
Skuteczne sposoby obsługi alertów / wyskakujących okienek w systemie Windows i sieci Web w programie Selenium WebDriver:
algorytm dijkstry wykorzystujący kolejkę priorytetową java
W poprzednim samouczku skupiliśmy się na naszej dyskusji różne typy oczekiwania dostarczane przez WebDriver . Omówiliśmy również różne typy opcji nawigacyjnych dostępnych w WebDriver.
Idąc naprzód w Samouczki Selenium WebDriver , omówimy różne rodzaje alertów dostępnych podczas testowania aplikacji internetowych i strategii ich obsługi.
Istnieją dwa typy alertów, na których będziemy się głównie koncentrować :
- Wyskakujące okienka z alertami w systemie Windows
- Internetowe wyskakujące okienka z alertami
Ponieważ wiemy, że obsługa wyskakujących okienek opartych na oknach wykracza poza możliwości programu WebDriver, do obsługi wyskakujących okienek będziemy używać narzędzi innych firm.
Obsługa wyskakujących okienek jest jednym z najtrudniejszych zadań do zautomatyzowania podczas testowania aplikacji internetowych. Ze względu na różnorodność typów pop-upów sytuację jeszcze bardziej komplikuje.
Co to jest okno alertów / okienko wyskakujące / pole potwierdzenia / monit / pole uwierzytelniania?
To nic innego jak małe okienko, które pojawia się na ekranie w celu przekazania informacji lub ostrzeżenia o potencjalnie szkodliwej operacji lub może nawet poprosić o pozwolenie na operację.
Przykład: Rozważmy przykład z życia wzięty dla lepszego zrozumienia; Załóżmy, że umieściliśmy zdjęcie w którymkolwiek z tych popularnych serwisów społecznościowych. Później chciałbym usunąć przesłane zdjęcie. Aby usunąć, kliknąłem przycisk usuwania. Jak tylko kliknę przycisk usuwania, system ostrzega mnie przed moim działaniem, pytając - Czy na pewno chcesz usunąć plik? Więc teraz mamy możliwość zaakceptowania tego ostrzeżenia lub odrzucenia go.
Więc przed sesją zobaczmy, jak odrzucamy lub akceptujemy alerty w zależności od ich typu. Począwszy od wyskakujących okienek internetowych.
Czego się nauczysz:
Wyskakujące okienka internetowe
Zobaczmy, jak sobie z nimi radzimy za pomocą WebDriver.
Obsługa wyskakującego okienka internetowego
WebDriver oferuje użytkownikom bardzo skuteczny sposób obsługi tych wyskakujących okienek za pomocą interfejsu Alert.
Istnieją cztery metody, których będziemy używać wraz z interfejsem Alert.
1) void odrzuć () - Metoda odrzucenia () powoduje kliknięcie przycisku „Anuluj”, gdy tylko pojawi się wyskakujące okienko.
dwa) void accept () - Metoda accept () kliknie przycisk „Ok”, gdy tylko pojawi się wyskakujące okienko.
3) Ciąg getText () - Metoda getText () zwraca tekst wyświetlany w polu alertu.
4) void sendKeys (String stringToSend) - Metoda sendKeys () wprowadza określony wzorzec ciągu w polu ostrzeżenia.
Przejdźmy dalej i spójrzmy na rzeczywistą realizację.
Wyjaśnienie testowanej aplikacji
Zaprojektowaliśmy stronę internetową w taki sposób, aby zawierała kilka podstawowych typów elementów internetowych. Jest to ta sama aplikacja, którą przedstawiliśmy podczas omawiania klasy Select we wcześniejszej części tej serii.
- Hiperłącze : Dwa hiperłącza, mianowicie „Google” i „abodeQA”, przekierowują użytkownika odpowiednio na „http://www.google.com/” i „http://www.abodeqa.com/” na kliknij wydarzenie.
- Upuścić : Utworzono trzy hiperłącza do wybierania kolorów, owoców i zwierząt z domyślną wartością.
- Przycisk : Został utworzony przycisk „wypróbuj”, aby wyświetlić wyskakujące okienko z przyciskami OK i Anuluj po kliknięciu zdarzenia.
(Kliknij obraz, aby wyświetlić w powiększeniu)
Kolejny jest kod HTML użyty do stworzenia wyżej wymienionej strony internetowej:
Testowanie Wybierz klasęCzerwony Zielony Żółty Szary | Jabłko, pomarańcza, mango, limonka | Wybierz Elephant Mouse Dog |
Kliknij przycisk, aby wyświetlić pole potwierdzenia. Wypróbuj funkcję myFunction () {potwierdź ('Naciśnij przycisk!'); } |
Scenariusz do zautomatyzowania
- Uruchom przeglądarkę internetową i otwórz stronę internetową
- Kliknij przycisk „Wypróbuj”
- Zaakceptuj alert
- Kliknij ponownie przycisk „Wypróbuj”
- Odrzuć alert
Kod WebDriver przy użyciu Select Class
Proszę zwrócić uwagę, że do tworzenia skryptów będziemy używać projektu „Learning_Selenium” utworzonego w poprzednim tutorialu.
Krok 1 : Utwórz nową klasę Java o nazwie „DemoWebAlert” w ramach projektu „Learning_Selenium”.
Krok 2 : Skopiuj i wklej poniższy kod w klasie „DemoWebAlert.java”.
Poniżej znajduje się skrypt testowy odpowiadający powyższemu scenariuszowi.
import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; /** * class description */ public class DemoWebAlert { WebDriver driver; /** * Constructor */ public DemoWebAlert() { } /** * Set up browser settings and open the application */ @Before public void setUp() { driver=new FirefoxDriver(); // Opened the application driver.get('file:///F:/Work/Selenium/Testing-Presentation/DemoWebPopup.htm'); driver.manage().window().maximize(); } /** * Test to check Select functionality * @throws InterruptedException */ @Test public void testWebAlert() throws InterruptedException { // clicking on try it button driver.findElement(By.xpath('//button(contains(text(),'Try it'))')).click(); Thread.sleep(5000); // accepting javascript alert Alert alert = driver.switchTo().alert(); alert.accept(); // clicking on try it button driver.findElement(By.xpath('//button(contains(text(),'Try it'))')).click(); Thread.sleep(5000); // accepting javascript alert driver.switchTo().alert().dismiss(); // clicking on try it button driver.findElement(By.xpath('//button(contains(text(),'Try it'))')).click(); Thread.sleep(5000); // accepting javascript alert System.out.println(driver.switchTo().alert().getText()); driver.switchTo().alert().accept(); } /** * Tear down the setup after test completes */ @After public void tearDown() { driver.quit(); } }
Code Walk-through
Import wyciągów
Importuj org.openqa.selenium.Alert - Importuj ten pakiet przed utworzeniem skryptu. Pakiet odwołuje się do klasy Alert, która jest wymagana do obsługi alertów internetowych w WebDriver.
Tworzenie obiektów dla klasy Alert
Alert alert = driver.switchTo (). Alert ();
Tworzymy zmienną referencyjną dla klasy Alert i odwołujemy ją do alertu.
jak dodać element do tablicy w java
Przełącz na alert
Driver.switchTo (). Alert ();
Powyższe polecenie służy do przełączania sterowania do ostatnio wygenerowanego okna pop-up.
Zaakceptuj alert
alert.accept ();
Powyższe polecenie akceptuje alert, klikając przycisk OK.
Odrzuć alert
alert.dismiss ();
Powyższe polecenie zamyka alert, klikając przycisk Anuluj, a zatem operacja nie powinna być kontynuowana.
Wyskakujące okienka
Czasami podczas automatyzacji otrzymujemy scenariusze, w których musimy obsługiwać wyskakujące okienka generowane przez okna, takie jak wyskakujące okienko drukowania lub okno przeglądania podczas przesyłania pliku.
Przeczytaj także = >> Jak obsługiwać przesyłanie plików w Selenium
Obsługa tych wyskakujących okienek zawsze była trochę trudna, ponieważ wiemy, że Selenium to narzędzie do testowania automatyzacji, które obsługuje tylko testowanie aplikacji internetowych, co oznacza, że nie obsługuje aplikacji opartych na systemie Windows, a jednym z nich jest alert w oknie. Jednak sam selen nie może pomóc w tej sytuacji, ale wraz z interwencją strony trzeciej ten problem można rozwiązać.
Dostępnych jest kilka narzędzi innych firm do obsługi wyskakujących okienek wraz z selenem.
jak używać sortowania w java
Zajmijmy się teraz wyskakującym okienkiem przy użyciu klasy Robot.
Klasa Robot jest narzędziem opartym na języku Java, które emuluje działania klawiatury i myszy.
Zanim przejdziemy dalej, poświęćmy chwilę, aby przyjrzeć się testowanej aplikacji (AUT).
Wyjaśnienie testowanej aplikacji
Jako testowana aplikacja używalibyśmy adresu „gmail.com”. Uważam, że aplikacja nie wymaga więcej przedstawiania.
Scenariusz do zautomatyzowania
- Uruchom przeglądarkę internetową i otwórz aplikację - „gmail.com”
- Wprowadź prawidłową nazwę użytkownika i hasło
- Kliknij przycisk logowania
- Kliknij przycisk tworzenia
- Kliknij ikonę załączania
- Wybierz pliki do przesłania w wyskakującym okienku.
Kod WebDriver wykorzystujący Robot Class
Zwróć uwagę, że do tworzenia skryptów będziemy używać projektu „Learning_Selenium” utworzonego w poprzednim samouczku.
Krok 1 : Utwórz nową klasę Java o nazwie „DemoWindowAlert” w ramach projektu „Learning_Selenium”.
Krok 2 : Skopiuj i wklej poniższy kod w klasie „DemoWindowAlert.java”.
Poniżej znajduje się skrypt testowy odpowiadający powyższemu scenariuszowi.
import java.awt.Robot;
import java.awt.event.KeyEvent; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class DemoWindowAlert {sterownik WebDriver; @Before public void setUp () {driver = new FirefoxDriver (); driver.get („https://gmail.com”); driver.manage (). window (). maximize (); } @Test public void testWindowAlert () rzuca wyjątek {// wprowadź prawidłowy adres e-mail driver.findElement (By.id ('Email')). SendKeys ('TestSelenium1607@gmail.com '); // wprowadź poprawne hasło driver.findElement (By.id ('Passwd')). sendKeys ('TestSelenium'); // kliknij przycisk logowania driver.findElement (By.id ('signIn')). click (); Wątek uśpiony (30000); // kliknij przycisk tworzenia wiadomości driver.findElement (By.xpath ('// div (@ class =' z0 ') // div (zawiera (text (),' COMPOSE '))')). click (); // kliknij ikonę załączania plików driver.findElement (By.xpath ('// div (zawiera (@ command,' Files ')) // div (zawiera (@ class,' aaA '))'). click ( ); // tworzenie instancji klasy Robot (narzędzie oparte na języku Java) Robot rb = new Robot (); // naciskanie klawiszy za pomocą keyPress i keyRelease zdarzenia rb.keyPress (KeyEvent.VK_D); rb.keyRelease (KeyEvent.VK_D); Thread.sleep (2000); rb.keyPress (KeyEvent.VK_SHIFT); rb.keyPress (KeyEvent.VK_SEMICOLON); rb.keyRelease (KeyEvent.VK_SEMICOLON); rb.keyRelease (KeyEvent.VK_SHIFT); rb.keyPress (KeyEvent.VK_BACK_SLASH); rb.keyRelease (KeyEvent.VK_BACK_SLASH); Thread.sleep (2000); rb.keyPress (KeyEvent.VK_P); rb.keyRelease (KeyEvent.VK_P); rb.keyPress (KeyEvent.VK_I); rb.keyRelease (KeyEvent.VK_I); rb.keyPress (KeyEvent.VK_C); rb.keyRelease (KeyEvent.VK_C); Thread.sleep (2000); rb.keyPress (KeyEvent.VK_ENTER); rb.keyRelease (KeyEvent.VK_ENTER); Thread.sleep (2000); } @After public void tearDown () {driver.quit (); }} Code Walk-through
Import wyciągów
import java.awt.Robot - Importuj ten pakiet przed utworzeniem skryptu. Pakiet odwołuje się do klasy Robot w języku Java, która jest wymagana, aby symulować zdarzenia klawiatury i myszy.
import java.awt.event.KeyEvent - Pakiet umożliwia użytkownikowi użycie zdarzeń keyPress i keyRelease na klawiaturze.
Tworzenie obiektów dla klasy Robot
Robot rb = nowy Robot ();
Tworzymy zmienną referencyjną dla klasy Robot i tworzymy ją.
Wydarzenia KeyPress i KeyRelease
rb.keyPress (KeyEvent.VK_D);
rb.keyRelease (KeyEvent.VK_D);
Metody keyPress i keyRelease symulują odpowiednio naciśnięcie i zwolnienie przez użytkownika określonego klawisza na klawiaturze.
Wniosek
W tym samouczku staraliśmy się zapoznać Cię z klasą Alert WebDriver, która służy do obsługi wyskakujących okienek internetowych. Poinformowaliśmy również o klasie Robot, której można użyć do wypełnienia wartości w alercie opartym na oknie za pomocą zdarzeń keyPress i keyRelease.
Podsumowanie artykułu:
- Alerty to małe okienko, które pojawia się na ekranie w celu przekazania pewnych informacji lub ostrzeżenia o potencjalnie szkodliwej operacji lub może nawet poprosić o pozwolenie na operację.
- Popularne są dwa typy alertów -
- Powiadomienia wyskakujące w systemie Windows
- Internetowe wyskakujące okienka z alertami
- Przed właściwym skryptowaniem musimy zaimportować pakiet, aby móc utworzyć skrypt WebDriver do obsługi listy rozwijanej i udostępniania klasy Select.
- WebDriver oferuje użytkownikom bardzo skuteczny sposób obsługi tych wyskakujących okienek za pomocą interfejsu Alert.
- void odrzuć () - The oddalić() metoda kliknie przycisk „Anuluj”, gdy tylko pojawi się wyskakujące okienko.
- void accept () - The zaakceptować() metoda kliknie przycisk „Ok”, gdy tylko pojawi się wyskakujące okienko.
- Strunowy getText () - The getText () metoda zwraca tekst wyświetlany w polu alertu.
- void sendKeys (String stringToSend) - The sendKeys () metoda wprowadza określony wzorzec ciągu w polu alertu.
- Obsługa wyskakujących okienek zawsze były trochę trudne, ponieważ wiemy, że Selenium jest narzędziem do testowania automatyzacji, które obsługuje tylko testowanie aplikacji internetowych, co oznacza, że nie obsługuje aplikacji opartych na systemie Windows, a jednym z nich jest alert w oknie.
- Klasa robota jest narzędziem opartym na Javie, które emuluje działania klawiatury i myszy i może być efektywnie używane do obsługi okien wyskakujących za pomocą zdarzeń klawiatury.
- Metody keyPress i keyRelease symulują odpowiednio naciśnięcie i zwolnienie przez użytkownika określonego klawisza na klawiaturze.
Następny samouczek nr 17 : W nadchodzącym samouczku omówimy różne inne powszechnie używane polecenia WebDriver . Rzucilibyśmy światło na takie tematy, jak obsługa wyjątków i obsługa elementów iframe. Omówilibyśmy również polecenia get udostępniane w WebDriver.
Wyjaśnilibyśmy te tematy za pomocą szybkich przykładów, aby uczynić je zrozumiałymi dla czytelników, aby mogli ćwiczyć te koncepcje w codziennym pisaniu skryptów.
Uwaga dla Czytelników : Do tego czasu bądź na bieżąco i zautomatyzuj strony internetowe zawierające wyskakujące okienka i okna za pomocą narzędzia WebDriver - „Alert class” i narzędzia Java - „Robot Class”.
Zapraszam do zamieszczania swoich zapytań / komentarzy na temat tego lub innych poprzednich samouczków w komentarzach poniżej.
rekomendowane lektury
- Cucumber Selenium Tutorial: Integracja Cucumber Java Selenium WebDriver
- Wprowadzenie do Selenium WebDriver - samouczek Selenium # 8
- Wdrożenie naszego pierwszego skryptu WebDriver - Selenium WebDriver Tutorial # 10
- WebDriver Cała konfiguracja i instalacja z Eclipse - samouczek Selenium # 9
- Sprawdź widoczność elementów sieci Web przy użyciu różnych typów poleceń WebDriver - samouczek Selenium nr 14
- Samouczek GeckoDriver Selenium: Jak używać GeckoDriver w projektach Selenium
- Integracja Jenkins z Selenium WebDriver: samouczek krok po kroku
- Efektywne skrypty Selenium i scenariusze rozwiązywania problemów - samouczek Selenium nr 27