Selenium Obsługa okien alertów i wyskakujących okienek: jak sobie z nimi radzić?

W czym jest Alert Selenium?

An Alarm w Selenium to małe okno wiadomości, które pojawia się na ekranie, aby przekazać użytkownikowi pewne informacje lub powiadomienie. Powiadamia użytkownika o pewnych konkretnych informacjach lub błędach, prosi o pozwolenie na wykonanie pewnych zadań, a także wyświetla komunikaty ostrzegawcze.

W tym samouczku nauczymy się obsługiwać wyskakujące okienka Selenium oraz różne rodzaje alertów znajdujących się w aplikacji internetowej Testowanie. Zobaczymy również, jak obsługiwać Alert w Selenium WebDriver i dowiedz się, jak akceptować i odrzucać alerty w zależności od ich typów.

Rodzaje alertów w Selenium

1) Simple Alert

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

Simple Alert

2) Prompt Alert

To zdjęcie Prompt Alert prosi użytkownika o pewne informacje i Selenium webdriver może wprowadzić tekst za pomocą sendkeys(” input…. „).

Prompt Alert

3) Confirmation Alert

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

Confirmation Alert

Jak obsługiwać alert w Selenium Sterownik sieciowy

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

1) nieważne zwolnienie() // Aby kliknąć przycisk „Anuluj” alertu.

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

2) unieważnij akceptację()// Aby kliknąć przycisk „OK” alertu.

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

3) Ciąg getText() // Aby przechwycić komunikat ostrzegawczy.

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

4) void sendKeys(Ciąg stringToSend) // Aby wysłać dane do pola alertu.

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

Na poniższym ekranie możesz zobaczyć szereg metod alertów wyświetlanych przez Eclipse.

W prosty sposób możemy przełączyć się na alert z okna głównego za pomocą Selenium'S .Przełącz na() Metoda.

Obsługuj alert w Selenium Sterownik sieciowy

Teraz automatyzujemy podany poniżej scenariusz.

W tym scenariuszu do ilustracji użyjemy witryny demonstracyjnej Guru99 Selenium Obsługa alertów.

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

Krok 2) Wprowadź dowolny identyfikator klienta.

Obsługuj alert w Selenium Sterownik sieciowy

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

Obsługuj alert w Selenium Sterownik sieciowy

Krok 4) Odrzuć/zaakceptuj alert.

Obsługuj alert w Selenium Sterownik sieciowy

Obsługa alertu w Selenium Sterownik internetowy

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();		
    }	

}
		

Wyjście:

Po wykonaniu powyższego kodu uruchamia się witryna. Spróbuj usunąć Customer ID, obsługując alert potwierdzający wyświetlany na ekranie, a tym samym usuwając customer id z aplikacji.

Jak obsługiwać wyskakujące okienko za pomocą Selenium Sterownik internetowy

W automatyzacji, gdy mamy wiele okien w dowolnej aplikacji internetowej, aktywność może potrzebować przełączyć kontrolę między kilkoma oknami z jednego do drugiego, aby zakończyć operację. Po zakończeniu operacji musi ona powrócić do głównego okna, tj. okna nadrzędnego w Selenium. Zobaczymy to w dalszej części artykułu na przykładzie.

In Selenium Sterownik internetowy Istnieją 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 sieciowej. Jego typem zwracanym jest Iterator .

Driver.getWindowHandle();

Kiedy strona się otworzy, musimy obsłużyć główne okno wg sterownik.getWindowHandle(). To obsłuży bieżące okno, które jednoznacznie identyfikuje je w tej instancji sterownika. Typ zwracany to String.

Do obsługi okien w Selenium, wykonamy poniższe kroki:

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

W tym scenariuszu użyjemy witryny demonstracyjnej „Guru99”, aby zilustrować obsługę okien.

Krok 1) Uruchom witrynę.

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

Obsługuj wyskakujące okienko za pomocą Selenium Sterownik internetowy

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

Kiedy użytkownik kliknie link „Kliknij tutaj”, otworzy się nowe okno podrzędne.

Obsługuj wyskakujące okienko za pomocą Selenium Sterownik internetowy

Krok 3) Otwiera się nowe okno podrzędne.

Otworzy się nowe okno, w którym użytkownik zostanie poproszony o podanie adresu e-mail i przesłanie strony.

Obsługuj wyskakujące okienko za pomocą Selenium Sterownik internetowy

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

Obsługuj wyskakujące okienko za pomocą Selenium Sterownik internetowy

Krok 5) Wyświetl dane uwierzytelniające dostępu po przesłaniu strony.

Obsługuj wyskakujące okienko za pomocą Selenium Sterownik internetowy

Po wykonaniu kodu zobaczysz, że okno podrzędne jest otwarte w nowej karcie.

  1. Zamknij okno podrzędne, w którym wyświetlane są dane uwierzytelniające.

Obsługuj wyskakujące okienko za pomocą Selenium Sterownik internetowy

  1. Przejdź do okna nadrzędnego.

Obsługuj wyskakujące okienko za pomocą Selenium Sterownik internetowy

Jak obsługiwać wiele Windows in Selenium

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);				
    }
}		

Wyjście:

Po wykonaniu powyższego kodu uruchamia się witryna, a po kliknięciu łącza „Kliknij tutaj” otwiera się okno podrzędne w nowej karcie. Możesz zamknąć okno podrzędne i przełączyć się na okno nadrzędne po zakończeniu operacji. W ten sposób obsługujesz więcej niż jedno okno w aplikacji.

Obsługa wielu okien Selenium
Obsługa wielu okien Selenium

Podsumowanie

  • Zdefiniowaliśmy rodzaje alertów i pokazaliśmy je za pomocą zrzutu ekranu.
  • Zademonstrowano obsługę alertu za pomocą Selenium WebDriver przy użyciu określonego scenariusza.
  • Obsługiwano wiele okien za pomocą Selenium WebDriver przy użyciu określonego scenariusza.

Czytaj więcej Czytaj więcej