Cum să gestionezi alertele și ferestrele popup în Selenium?

În ce este Alert Selenium?

An Alertă în Selenium este o casetă mică de mesaje care apare pe ecran pentru a oferi utilizatorului câteva informații sau notificări. Acesta anunță utilizatorul cu anumite informații sau erori specifice, solicită permisiunea de a efectua anumite sarcini și oferă, de asemenea, mesaje de avertizare.

În acest tutorial, vom învăța cum să gestionăm pop-up-ul Selenium și diferite tipuri de alerte găsite în aplicația web Testarea. Vom vedea, de asemenea, cum să gestionăm Alert în Selenium WebDriver și aflați cum acceptăm și respingem alerta în funcție de tipurile de alertă.

Tipuri de alerte în Selenium

1) Simple Alert

Clasa de alertă simplă în Selenium afișează unele informații sau avertismente pe ecran.

Simple Alert

2) Prompt Alert

Acest Prompt Alert cere ceva input de la utilizator și Selenium webdriver poate introduce textul folosind sendkeys(” input…. “).

Prompt Alert

3) Confirmation Alert

Această alertă de confirmare cere permisiunea de a efectua un anumit tip de operație.

Confirmation Alert

Cum să gestionați Alert în Selenium webdriver

Interfața de alertă oferă următoarele câteva metode care sunt utilizate pe scară largă în Selenium Webdriver.

1) anulează respingerea () // Pentru a face clic pe butonul „Anulare” al alertei.

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

2) void accept()// Pentru a face clic pe butonul „OK” al alertei.

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

3) String getText() // Pentru a capta mesajul de alertă.

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

4) void sendKeys(String șirToSend) // Pentru a trimite unele date către caseta de alertă.

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

Puteți vedea că sunt afișate un număr de metode de alertă, așa cum se arată în ecranul de mai jos sugerat de Eclipse.

Putem comuta cu ușurință la alertă din fereastra principală utilizând Selenium'S .schimba cu() metodă.

Gestionați alertă Selenium webdriver

Acum automatizăm scenariul de mai jos.

În acest scenariu, vom folosi site-ul demonstrativ Guru99 pentru a ilustra Selenium Gestionarea alertelor.

Pas 1) Lansați browserul web și deschideți site-ul https://demo.guru99.com/test/delete_customer.php

Pas 2) Introduceți orice ID de client.

Gestionați alertă Selenium webdriver

Pas 3) După introducerea ID-ului clientului, faceți clic pe butonul „Trimite”.

Gestionați alertă Selenium webdriver

Pas 4) Respinge/accepta alerta.

Gestionați alertă Selenium webdriver

Alerta de manipulare în 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();		
    }	

}
		

ieșire:

Când executați codul de mai sus, acesta lansează site-ul. Încercați să ștergeți ID-ul clientului gestionând alerta de confirmare care se afișează pe ecran și, prin urmare, ștergeți ID-ul clientului din aplicație.

Cum să gestionați fereastra pop-up folosind Selenium Webdriver

În automatizare, atunci când avem mai multe ferestre în orice aplicație web, este posibil ca activitatea să fie nevoie să comute controlul între mai multe ferestre de la una la alta pentru a finaliza operațiunea. După finalizarea operațiunii, trebuie să se întoarcă la fereastra principală, adică în fereastra părinte Selenium. Vom vedea acest lucru în continuare în articol cu ​​un exemplu.

In Selenium driver web există metode prin care putem gestiona mai multe ferestre.

Driver.getWindowHandles();

Pentru a gestiona toate ferestrele deschise prin driver web, putem folosi „Driver.getWindowHandles()” și apoi putem comuta fereastra de la o fereastră la alta într-o aplicație web. Tipul său de returnare este Iterator .

Driver.getWindowHandle();

Când se deschide site-ul, trebuie să ne ocupăm de fereastra principală driver.getWindowHandle(). Aceasta va gestiona fereastra curentă care o identifică în mod unic în cadrul acestei instanțe de driver. Tipul său de returnare este String.

Pentru manipularea ferestrelor în Selenium, vom urma pașii de mai jos:

Acum, vom automatiza scenariul de mai jos pentru a vedea cum să gestionăm mai multe ferestre folosind Selenium Webdriver.

În acest scenariu, vom folosi site-ul demonstrativ „Guru99” pentru a ilustra gestionarea ferestrelor.

Pas 1) Lansați site-ul.

Lansați browserul și deschideți site-ul https://demo.guru99.com/popup.php

Gestionați fereastra pop-up folosind Selenium Webdriver

Pas 2) Faceți clic pe linkul „Click Here”.

Când utilizatorul face clic pe linkul „Clic aici”, se deschide o nouă fereastră copil.

Gestionați fereastra pop-up folosind Selenium Webdriver

Pas 3) Se deschide o nouă fereastră pentru copii.

Se deschide o nouă fereastră, cereți utilizatorului să introducă ID-ul de e-mail și să trimită pagina.

Gestionați fereastra pop-up folosind Selenium Webdriver

Pas 4) Introduceți ID-ul dvs. de e-mail și trimiteți.

Gestionați fereastra pop-up folosind Selenium Webdriver

Pas 5) Afișați acreditările de acces la trimiterea paginii.

Gestionați fereastra pop-up folosind Selenium Webdriver

Când executați codul, veți vedea că fereastra copil este deschisă într-o filă nouă.

  1. Închideți fereastra Copil pe care sunt afișate acreditările.

Gestionați fereastra pop-up folosind Selenium Webdriver

  1. Comutați la fereastra părinte.

Gestionați fereastra pop-up folosind Selenium Webdriver

Cum să gestionezi mai multe 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);				
    }
}		

ieșire:

Când executați codul de mai sus, lansează site-ul și, făcând clic pe linkul „Click aici”, se deschide o fereastră copil într-o filă nouă. Puteți închide fereastra copil și trece la fereastra părinte odată ce operațiunea este complet finalizată. Prin urmare, gestionați mai mult de o fereastră în aplicație.

Manipularea mai multor ferestre în Selenium
Manipularea mai multor ferestre în Selenium

Concluzie

  • Am definit tipurile de alertă și le-am arătat cu o captură de ecran.
  • A demonstrat gestionarea alertei cu Selenium WebDriver care utilizează un anumit scenariu.
  • Gestionat mai multe ferestre cu Selenium WebDriver care utilizează un anumit scenariu.