Kako rukovati Selenium Upozorenja i skočni prozori?

U čemu je Alert Selenium?

An Upozorenje u Selenium je mali okvir s porukom koji se pojavljuje na ekranu kako bi korisniku dao neke informacije ili obavijest. Obavještava korisnika s određenim informacijama ili pogreškama, traži dopuštenje za obavljanje određenih zadataka, a također nudi poruke upozorenja.

U ovom vodiču naučit ćemo kako upravljati skočnim prozorom Selenium i različite vrste upozorenja pronađenih u web aplikaciji Ispitivanje. Također ćemo vidjeti kako rukovati upozorenjem Selenium WebDriver i saznajte kako prihvaćamo i odbijamo upozorenje ovisno o vrsti upozorenja.

Vrste upozorenja u Selenium

1) Simple Alert

Jednostavna klasa upozorenja u Selenium prikazuje neke informacije ili upozorenja na ekranu.

Simple Alert

2) Prompt Alert

Ova Prompt Alert traži neki unos od korisnika i Selenium webdriver može unijeti tekst koristeći sendkeys(” input…. “).

Prompt Alert

3) Confirmation Alert

Ovo potvrdno upozorenje traži dopuštenje za obavljanje neke vrste operacije.

Confirmation Alert

Kako postupiti s upozorenjem Selenium webdriver

Sučelje s upozorenjem pruža dolje nekoliko metoda koje se široko koriste u Selenium Webdriver.

1) void dismiss() // Za klik na gumb 'Odustani' upozorenja.

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

2) nevažeći prihvatiti()// Za klik na gumb 'OK' upozorenja.

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

3) Niz getText() // Za snimanje poruke upozorenja.

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

4) void sendKeys(string stringToSend) // Za slanje nekih podataka u okvir upozorenja.

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

Možete vidjeti da su prikazane brojne metode upozorenja kao što je prikazano na donjem zaslonu koje predlaže Eclipse.

Lako se možemo prebaciti na upozorenje iz glavnog prozora pomoću Selenium'S .prebaciti na() metoda.

Rukovanje upozorenjem Selenium webdriver

Sada automatiziramo donji scenarij.

U ovom ćemo scenariju za ilustraciju koristiti demo stranicu Guru99 Selenium Rukovanje upozorenjima.

Korak 1) Pokrenite web preglednik i otvorite stranicu https://demo.guru99.com/test/delete_customer.php

Korak 2) Unesite bilo koji korisnički ID.

Rukovanje upozorenjem Selenium webdriver

Korak 3) Nakon unosa korisničkog ID-a, kliknite na gumb "Pošalji".

Rukovanje upozorenjem Selenium webdriver

Korak 4) Odbaci/prihvati upozorenje.

Rukovanje upozorenjem Selenium webdriver

Rukovanje upozorenjem Selenium Webdriver

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

}
		

Izlaz:

Kada izvršite gornji kod, on pokreće stranicu. Pokušajte izbrisati korisnički ID rukovanjem potvrdnim upozorenjem koje se prikazuje na ekranu i time izbrišite korisnički ID iz aplikacije.

Kako rukovati skočnim prozorom pomoću Selenium Webdriver

U automatizaciji, kada imamo više prozora u bilo kojoj web aplikaciji, aktivnost će možda trebati prebaciti kontrolu između nekoliko prozora s jednog na drugi kako bi se operacija dovršila. Nakon završetka operacije mora se vratiti u glavni prozor tj. nadređeni prozor u Selenium. To ćemo vidjeti dalje u članku s primjerom.

In Selenium web driver postoje metode pomoću kojih možemo rukovati s više prozora.

Driver.getWindowHandles();

Za obradu svih otvorenih prozora pomoću web upravljačkog programa, možemo upotrijebiti "Driver.getWindowHandles()", a zatim možemo prebacivati ​​prozor s jednog prozora na drugi u web aplikaciji. Njegov povratni tip je Iterator .

Driver.getWindowHandle();

Kada se stranica otvori, moramo rukovati glavnim prozorom driver.getWindowHandle(). Ovo će obraditi trenutni prozor koji ga jedinstveno identificira unutar ove instance upravljačkog programa. Njegov povratni tip je String.

Za rukovanje prozorom u Selenium, slijedit ćemo korake u nastavku:

Sada ćemo automatizirati dolje navedeni scenarij da bismo vidjeli kako rukovati korištenjem više prozora Selenium Webdriver.

U ovom scenariju koristit ćemo demo stranicu "Guru99" za ilustraciju rukovanja prozorom.

Korak 1) Pokrenite stranicu.

Pokrenite preglednik i otvorite stranicu https://demo.guru99.com/popup.php

Rukovanje skočnim prozorom pomoću Selenium Webdriver

Korak 2) Kliknite na poveznicu “Kliknite ovdje”.

Kada korisnik klikne na poveznicu "Klikni ovdje", otvara se novi podređeni prozor.

Rukovanje skočnim prozorom pomoću Selenium Webdriver

Korak 3) Otvara se novi podređeni prozor.

Otvara se novi prozor, tražite od korisnika da unese ID e-pošte i pošalje stranicu.

Rukovanje skočnim prozorom pomoću Selenium Webdriver

Korak 4) Unesite svoj ID e-pošte i pošaljite.

Rukovanje skočnim prozorom pomoću Selenium Webdriver

Korak 5) Prikažite vjerodajnice za pristup prilikom slanja stranice.

Rukovanje skočnim prozorom pomoću Selenium Webdriver

Kada izvršite kôd, vidjet ćete da je podređeni prozor otvoren u novoj kartici.

  1. Zatvorite prozor Child na kojem su prikazane vjerodajnice.

Rukovanje skočnim prozorom pomoću Selenium Webdriver

  1. Prebacite se na roditeljski prozor.

Rukovanje skočnim prozorom pomoću Selenium Webdriver

Kako se nositi s višestrukim 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);				
    }
}		

Izlaz:

Kada izvršite gornji kod, on pokreće web mjesto i kada kliknete na vezu "Kliknite ovdje", otvara se podređeni prozor u novoj kartici. Možete zatvoriti podređeni prozor i prebaciti se na nadređeni prozor kada je operacija u potpunosti obavljena. Stoga rukovanje s više od jednog prozora u aplikaciji.

Upravljanje višestrukim prozorima Selenium
Upravljanje višestrukim prozorima Selenium

Zaključak

  • Definirali smo vrste upozorenja i prikazali ih snimkom zaslona.
  • Demonstrirano rukovanje uzbunom sa Selenium WebDriver koji koristi određeni scenarij.
  • Rukovao s više prozora Selenium WebDriver koji koristi određeni scenarij.

Opširnije Čitaj više