Πώς να χειρίζεστε ειδοποιήσεις και αναδυόμενα παράθυρα στο Selenium?
⚡ Έξυπνη Σύνοψη
Ειδοποιήσεις και αναδυόμενα παράθυρα σε Selenium are JavaΠαράθυρα διαλόγου σεναρίου και θυγατρικά παράθυρα που εμποδίζουν τη ροή αυτοματισμού. Αυτό το άρθρο εξηγεί πώς να αναγνωρίζετε απλές ειδοποιήσεις, ειδοποιήσεις άμεσης πρόσβασης και ειδοποιήσεις επιβεβαίωσης, να τις μεταβαίνετε με το WebDriver και να διαχειρίζεστε πολλά παράθυρα χρησιμοποιώντας το getWindowHandles().

Τι είναι μια ειδοποίηση στο Selenium?
An Ειδοποίηση σε Selenium είναι ένα μικρό JavaΠαράθυρο διαλόγου σεναρίου που εμφανίζεται στην οθόνη για να δώσει στον χρήστη ορισμένες πληροφορίες ή ειδοποίηση. Μπορεί να επιβεβαιώσει μια συγκεκριμένη ενέργεια, να ζητήσει άδεια για την εκτέλεση μιας λειτουργίας ή να εμφανίσει ένα μήνυμα προειδοποίησης.
Σε αυτό το σεμινάριο, θα μάθετε πώς να χειρίζεστε τα αναδυόμενα παράθυρα σε Selenium και τους διαφορετικούς τύπους ειδοποιήσεων που βρίσκονται σε μια διαδικτυακή εφαρμογή δοκιμώνΘα δούμε επίσης πώς να χειριστούμε μια ειδοποίηση στο Selenium WebDriver και πώς να το αποδεχτείτε ή να το απορρίψετε ανάλογα με τον τύπο ειδοποίησης.
Τύποι ειδοποιήσεων σε Selenium
JavaΤο σενάριο εμφανίζει τρία παράθυρα διαλόγου ειδοποιήσεων που Selenium πρέπει να χειριστεί διαφορετικά.
1) Simple Alert
Η απλή ειδοποίηση εμφανίζει πληροφορίες ή μια προειδοποίηση στην οθόνη. Ο χρήστης μπορεί να την επιβεβαιώσει μόνο κάνοντας κλικ OK.
2) Prompt Alert
Η ειδοποίηση προτροπής ζητά από τον χρήστη να εισαγάγει δεδομένα. Selenium Το WebDriver μπορεί να το πληκτρολογήσει χρησιμοποιώντας sendKeys("input...").
3) Confirmation Alert
Η ειδοποίηση επιβεβαίωσης ζητά από τον χρήστη να εγκρίνει ή να ακυρώσει μια λειτουργία. Εκθέτει και τα δύο OK Ματαίωση κουμπιά.
Πώς να χειριστείτε μια ειδοποίηση στο Selenium Πρόγραμμα οδήγησης Web
The Alert διεπαφή σε Selenium Πρόγραμμα οδήγησης Web αποκαλύπτει τέσσερις μεθόδους που καλύπτουν κάθε αλληλεπίδραση με ειδοποιήσεις.
- void dismiss() — κάνει κλικ στο Ματαίωση κουμπί.
driver.switchTo().alert().dismiss();
- void accept() — κάνει κλικ στο OK κουμπί.
driver.switchTo().alert().accept();
- Συμβολοσειρά getText() — καταγράφει το μήνυμα ειδοποίησης.
driver.switchTo().alert().getText();
- void sendKeys (String stringToSend) — πληκτρολογεί κείμενο σε μια προτρεπτική ειδοποίηση.
driver.switchTo().alert().sendKeys("Text");
Eclipse Η αυτόματη συμπλήρωση εμφανίζει τις διαθέσιμες μεθόδους ειδοποίησης μετά το typing alert. στη γραμμή επεξεργασίας. Μεταβείτε από το κύριο παράθυρο στην ειδοποίηση ανά πάσα στιγμή χρησιμοποιώντας Selenium'S .switchTo() μέθοδος.
Παράδειγμα που χρησιμοποιήθηκε: Διαγραφή επίδειξης πελάτη
Ας αυτοματοποιήσουμε το ακόλουθο σενάριο. Θα χρησιμοποιήσουμε το Guru99 ιστότοποι επίδειξης για επεξήγηση Selenium χειρισμός συναγερμού.
Βήμα 1) Εκκινήστε το πρόγραμμα περιήγησης και ανοίξτε https://demo.guru99.com/test/delete_customer.php.
Βήμα 2) Εισαγάγετε οποιοδήποτε αναγνωριστικό πελάτη.
Βήμα 3) Κάντε κλικ στο Λήψη προσφοράς κουμπί.
Βήμα 4) Αποδοχή ή απόρριψη της ειδοποίησης επιβεβαίωσης που προκύπτει.
Selenium Java Code: Λαβή Confirmation Alert
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 {
// Selenium 4 ships Selenium Manager, so an explicit driver path is no longer required.
WebDriver driver = new ChromeDriver();
// Open the Delete Customer demo page
driver.get("https://demo.guru99.com/test/delete_customer.php");
driver.findElement(By.name("cusid")).sendKeys("53920");
driver.findElement(By.name("submit")).submit();
// Switch to the confirmation alert
Alert alert = driver.switchTo().alert();
// Capture the alert message
String alertMessage = alert.getText();
System.out.println(alertMessage);
Thread.sleep(5000);
// Accept the alert
alert.accept();
driver.quit();
}
}
Παραγωγή: Το πρόγραμμα περιήγησης ανοίγει τη σελίδα Διαγραφή πελάτη, υποβάλλει το αναγνωριστικό πελάτη, αποδέχεται την ειδοποίηση επιβεβαίωσης και καταργεί την εγγραφή από την εφαρμογή επίδειξης.
Πώς να χειριστείτε το αναδυόμενο παράθυρο Windows in Selenium Πρόγραμμα οδήγησης Web
Όταν ο αυτοματισμός πρέπει να λειτουργήσει σε πολλά παράθυρα του προγράμματος περιήγησης, η δοκιμή πρέπει να αλλάξει την εστίαση μεταξύ τους και να επιστρέψει στο γονικό παράθυρο μετά από κάθε λειτουργία. Selenium Το WebDriver παρουσιάζει δύο μεθόδους που το καθιστούν δυνατό.
driver.getWindowHandles()
Επιστρέφει ένα Set<String> κάθε λαβής ανοιχτού παραθύρου. Επαναλάβετε το σύνολο για να μεταβείτε από το κύριο παράθυρο σε οποιοδήποτε θυγατρικό παράθυρο στην εφαρμογή.
driver.getWindowHandle()
Επιστρέφει ένα String με τη μοναδική λαβή του τρέχοντος παραθύρου. Καταγράψτε αυτό πριν ανοίξετε οποιοδήποτε θυγατρικό παράθυρο, ώστε να μπορείτε να επιστρέψετε στο γονικό παράθυρο αργότερα.
Ακολουθήστε αυτά τα βήματα για να δείξετε τον χειρισμό παραθύρων σε σχέση με το Guru99 αναδυόμενο παράθυρο επίδειξης.
Παράδειγμα εργασίας: Εναλλαγή παραθύρων
Βήμα 1) Εκκινήστε το πρόγραμμα περιήγησης και ανοίξτε https://demo.guru99.com/popup.php.
Βήμα 2) Κάντε κλικ στο Click Here σύνδεσμος. Ανοίγει ένα νέο θυγατρικό παράθυρο.
Βήμα 3) Το θυγατρικό παράθυρο ζητά από τον χρήστη να εισαγάγει ένα αναγνωριστικό email και να το υποβάλει.
Βήμα 4) Εισαγάγετε το αναγνωριστικό email και υποβάλετε.
Βήμα 5) Η σελίδα εμφανίζει τα διαπιστευτήρια πρόσβασης που επιστράφηκαν από την επίδειξη.
Μετά την εμφάνιση των διαπιστευτηρίων:
- Κλείστε το παράθυρο του παιδιού.
- Αλλάξτε την εστίαση πίσω στο γονικό παράθυρο.
Selenium Java Code: Χειρισμός πολλαπλών Windows
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 {
// Selenium 4 auto-resolves the browser driver via Selenium Manager
WebDriver driver = new FirefoxDriver();
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();
// Capture every open window handle
Set<String> allWindows = driver.getWindowHandles();
Iterator<String> iterator = allWindows.iterator();
while (iterator.hasNext()) {
String childWindow = iterator.next();
if (!mainWindow.equalsIgnoreCase(childWindow)) {
// Switch to the child window
driver.switchTo().window(childWindow);
driver.findElement(By.name("emailid")).sendKeys("gaurav.3n@gmail.com");
driver.findElement(By.name("btnLogin")).click();
// Close the child window
driver.close();
}
}
// Return focus to the main window
driver.switchTo().window(mainWindow);
driver.quit();
}
}
Παραγωγή: Η ιστοσελίδα εγκαινιάζεται, η Πατήστε εδώ Ο σύνδεσμος ανοίγει μια θυγατρική καρτέλα, Selenium εισάγει το email και το υποβάλλει, κλείνει το θυγατρικό παράθυρο και επιστρέφει στο γονικό παράθυρο.
Συμπέρασμα
- Ορίστηκαν τα τρία Selenium τύποι ειδοποιήσεων — απλοί, άμεσοι και επιβεβαιωτικοί — με ένα στιγμιότυπο οθόνης για τον καθένα.
- Αποδεδειγμένος χειρισμός ειδοποιήσεων με το WebDriver
Alertδιεπαφή χρησιμοποιώντας ένα λειτουργικό σενάριο διαγραφής πελάτη. - Χειρίστηκε πολλά παράθυρα του προγράμματος περιήγησης καταγράφοντας λαβές με
getWindowHandle()getWindowHandles()και εναλλαγή μεταξύ τους.















