Selenium Διαχείριση ειδοποιήσεων και αναδυόμενων παραθύρων: Πώς να χειριστείτε;

Τι είναι το Alert σε Selenium?

An Ειδοποίηση σε Selenium είναι ένα μικρό πλαίσιο μηνυμάτων που εμφανίζεται στην οθόνη για να δώσει στον χρήστη κάποιες πληροφορίες ή ειδοποίηση. Ειδοποιεί τον χρήστη με συγκεκριμένες πληροφορίες ή σφάλματα, ζητά άδεια για την εκτέλεση συγκεκριμένων εργασιών και παρέχει επίσης προειδοποιητικά μηνύματα.

Σε αυτό το σεμινάριο, θα μάθουμε πώς να χειριζόμαστε το αναδυόμενο παράθυρο Selenium και διαφορετικοί τύποι ειδοποιήσεων που βρίσκονται σε εφαρμογές web Δοκιμές. Θα δούμε επίσης πώς να χειριστούμε το Alert in Selenium WebDriver και μάθετε πώς αποδεχόμαστε και απορρίπτουμε την ειδοποίηση ανάλογα με τους τύπους ειδοποιήσεων.

Τύποι ειδοποιήσεων σε Selenium

1) Simple Alert

Η απλή κατηγορία ειδοποίησης σε Selenium εμφανίζει ορισμένες πληροφορίες ή προειδοποίηση στην οθόνη.

Simple Alert

2) Prompt Alert

Αυτός ο διαλογισμός στα Prompt Alert ζητά κάποια στοιχεία από τον χρήστη και Selenium Το webdriver μπορεί να εισάγει το κείμενο χρησιμοποιώντας τα πλήκτρα αποστολής (" input…. ").

Prompt Alert

3) Confirmation Alert

Αυτή η ειδοποίηση επιβεβαίωσης ζητά άδεια για να κάνει κάποιο είδος λειτουργίας.

Confirmation Alert

Πώς να χειριστείτε το Alert in Selenium Πρόγραμμα οδήγησης Web

Η διεπαφή ειδοποίησης παρέχει τις παρακάτω λίγες μεθόδους που χρησιμοποιούνται ευρέως Selenium Πρόγραμμα οδήγησης Web.

1) void dismiss() // Για να κάνετε κλικ στο κουμπί 'Ακύρωση' της ειδοποίησης.

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

2) void accept()// Για να κάνετε κλικ στο κουμπί «OK» της ειδοποίησης.

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

3) Συμβολοσειρά getText() // Για λήψη του μηνύματος ειδοποίησης.

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

4) void sendKeys (String stringToSend) // Για αποστολή ορισμένων δεδομένων στο πλαίσιο ειδοποίησης.

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

Μπορείτε να δείτε μια σειρά από μεθόδους ειδοποίησης που εμφανίζονται όπως φαίνεται στην παρακάτω οθόνη που προτείνεται από Eclipse.

Μπορούμε εύκολα να μεταβούμε σε ειδοποίηση από το κύριο παράθυρο χρησιμοποιώντας Selenium'S .switchTo() μέθοδος.

Χειριστείτε το Alert in Selenium Πρόγραμμα οδήγησης Web

Τώρα αυτοματοποιούμε το παρακάτω σενάριο.

Σε αυτό το σενάριο, θα χρησιμοποιήσουμε τον ιστότοπο επίδειξης Guru99 για την απεικόνιση Selenium Χειρισμός συναγερμού.

Βήμα 1) Εκκινήστε το πρόγραμμα περιήγησης και ανοίξτε τον ιστότοπο https://demo.guru99.com/test/delete_customer.php

Βήμα 2) Εισαγάγετε οποιοδήποτε αναγνωριστικό πελάτη.

Χειριστείτε το Alert in Selenium Πρόγραμμα οδήγησης Web

Βήμα 3) Αφού εισαγάγετε το αναγνωριστικό πελάτη, κάντε κλικ στο κουμπί «Υποβολή».

Χειριστείτε το Alert in Selenium Πρόγραμμα οδήγησης Web

Βήμα 4) Απόρριψη/αποδοχή της ειδοποίησης.

Χειριστείτε το Alert in Selenium Πρόγραμμα οδήγησης Web

Χειρισμός ειδοποίησης σε Selenium Πρόγραμμα οδήγησης Web

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

}
		

Παραγωγή:

Όταν εκτελείτε τον παραπάνω κώδικα, εκκινεί τον ιστότοπο. Προσπαθήστε να διαγράψετε το Αναγνωριστικό πελάτη χειριζόμενη την ειδοποίηση επιβεβαίωσης που εμφανίζεται στην οθόνη και, ως εκ τούτου, διαγράφοντας το αναγνωριστικό πελάτη από την εφαρμογή.

Πώς να χειριστείτε το αναδυόμενο παράθυρο χρησιμοποιώντας Selenium Πρόγραμμα οδήγησης Web

Στον αυτοματισμό, όταν έχουμε πολλά παράθυρα σε οποιαδήποτε εφαρμογή Ιστού, η δραστηριότητα μπορεί να χρειαστεί να αλλάξει τον έλεγχο μεταξύ πολλών παραθύρων από το ένα στο άλλο προκειμένου να ολοκληρωθεί η λειτουργία. Μετά την ολοκλήρωση της λειτουργίας, πρέπει να επιστρέψει στο κύριο παράθυρο, δηλαδή στο γονικό παράθυρο Selenium. Αυτό θα το δούμε περαιτέρω στο άρθρο με ένα παράδειγμα.

In Selenium πρόγραμμα οδήγησης web υπάρχουν μέθοδοι μέσω των οποίων μπορούμε να χειριστούμε πολλά παράθυρα.

Driver.getWindowHandles();

Για να χειριστούμε όλα τα ανοιχτά παράθυρα από το πρόγραμμα οδήγησης ιστού, μπορούμε να χρησιμοποιήσουμε το "Driver.getWindowHandles()" και, στη συνέχεια, μπορούμε να αλλάξουμε παράθυρο από το ένα παράθυρο στο άλλο σε μια εφαρμογή Ιστού. Ο τύπος επιστροφής του είναι Iterator .

Driver.getWindowHandle();

Όταν ανοίξει ο ιστότοπος, πρέπει να χειριστούμε το κύριο παράθυρο driver.getWindowHandle(). Αυτό θα χειριστεί το τρέχον παράθυρο που το προσδιορίζει μοναδικά σε αυτήν την παρουσία προγράμματος οδήγησης. Ο τύπος επιστροφής του είναι String.

Για χειρισμό παραθύρων σε Selenium, θα ακολουθήσουμε τα παρακάτω βήματα:

Τώρα, θα αυτοματοποιήσουμε το παρακάτω σενάριο για να δούμε πώς να χειριστούμε πολλά παράθυρα χρησιμοποιώντας Selenium Webdriver.

Σε αυτό το σενάριο, θα χρησιμοποιήσουμε τον ιστότοπο επίδειξης "Guru99" για να απεικονίσουμε τον χειρισμό παραθύρων.

Βήμα 1) Εκκινήστε τον ιστότοπο.

Εκκινήστε το πρόγραμμα περιήγησης και ανοίξτε τον ιστότοπο https://demo.guru99.com/popup.php

Χειριστείτε το αναδυόμενο παράθυρο χρησιμοποιώντας Selenium Πρόγραμμα οδήγησης Web

Βήμα 2) Κάντε κλικ στο σύνδεσμο «Κάντε κλικ εδώ».

Όταν ο χρήστης κάνει κλικ στο σύνδεσμο «Κάντε κλικ εδώ», ανοίγει νέο θυγατρικό παράθυρο.

Χειριστείτε το αναδυόμενο παράθυρο χρησιμοποιώντας Selenium Πρόγραμμα οδήγησης Web

Βήμα 3) Ανοίγει το νέο παιδικό παράθυρο.

Ανοίγει ένα νέο παράθυρο, ζητήστε από τον χρήστη να εισαγάγει το αναγνωριστικό email και να υποβάλει τη σελίδα.

Χειριστείτε το αναδυόμενο παράθυρο χρησιμοποιώντας Selenium Πρόγραμμα οδήγησης Web

Βήμα 4) Εισαγάγετε το αναγνωριστικό email σας και υποβάλετε.

Χειριστείτε το αναδυόμενο παράθυρο χρησιμοποιώντας Selenium Πρόγραμμα οδήγησης Web

Βήμα 5) Εμφανίστε τα διαπιστευτήρια πρόσβασης κατά την υποβολή της σελίδας.

Χειριστείτε το αναδυόμενο παράθυρο χρησιμοποιώντας Selenium Πρόγραμμα οδήγησης Web

Όταν εκτελέσετε τον κώδικα, θα δείτε ότι το θυγατρικό παράθυρο είναι ανοιχτό σε νέα καρτέλα.

  1. Κλείστε το παράθυρο Child στο οποίο εμφανίζονται τα διαπιστευτήρια.

Χειριστείτε το αναδυόμενο παράθυρο χρησιμοποιώντας Selenium Πρόγραμμα οδήγησης Web

  1. Μετάβαση στο γονικό παράθυρο.

Χειριστείτε το αναδυόμενο παράθυρο χρησιμοποιώντας Selenium Πρόγραμμα οδήγησης Web

Πώς να χειριστείτε πολλαπλά 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);				
    }
}		

Παραγωγή:

Όταν εκτελείτε τον παραπάνω κώδικα, εκκινεί τον ιστότοπο και κάνοντας κλικ στον σύνδεσμο "Κάντε κλικ εδώ", ανοίγει ένα θυγατρικό παράθυρο σε μια νέα καρτέλα. Μπορείτε να κλείσετε το θυγατρικό παράθυρο και να μεταβείτε στο γονικό παράθυρο μόλις ολοκληρωθεί πλήρως η λειτουργία. Ως εκ τούτου, χειρίζεται περισσότερα από ένα παράθυρα στην εφαρμογή.

Χειρισμός πολλαπλών παραθύρων Selenium
Χειρισμός πολλαπλών παραθύρων Selenium

Συμπέρασμα

  • Ορίσαμε τους τύπους ειδοποίησης και τους δείξαμε με στιγμιότυπο οθόνης.
  • Επέδειξε χειρισμό του Alert με Selenium WebDriver που χρησιμοποιεί συγκεκριμένο σενάριο.
  • Χειρίστηκε πολλά παράθυρα με Selenium WebDriver που χρησιμοποιεί συγκεκριμένο σενάριο.

Περισσότερα readmore