Σε αυτό το σεμινάριο, θα μάθουμε πώς να χειριζόμαστε το αναδυόμενο παράθυρο στο Σελήνιο και διαφορετικούς τύπους ειδοποιήσεων που βρέθηκαν στη δοκιμή εφαρμογών ιστού. Θα δούμε επίσης πώς να χειριστούμε την Ειδοποίηση στο Selenium WebDriver και να μάθουμε πώς αποδεχόμαστε και απορρίπτουμε την ειδοποίηση ανάλογα με τους τύπους ειδοποιήσεων.
Σε αυτό το σεμινάριο, θα μάθετε-
- Τι είναι η ειδοποίηση;
- Πώς να χειριστείτε το Alert στο Selenium WebDriver
- Πώς να χειριστείτε το Selenium Popup παράθυρο χρησιμοποιώντας το Webdriver
Τι είναι η Ειδοποίηση στο Σελήνιο;
Η Ειδοποίηση στο Σελήνιο είναι ένα μικρό πλαίσιο μηνύματος που εμφανίζεται στην οθόνη για να δώσει στον χρήστη κάποιες πληροφορίες ή ειδοποιήσεις. Ειδοποιεί τον χρήστη με συγκεκριμένες πληροφορίες ή λάθη, ζητά άδεια για την εκτέλεση συγκεκριμένων εργασιών και παρέχει επίσης προειδοποιητικά μηνύματα.
Ακολουθούν λίγες ειδοποιήσεις σε τύπους σεληνίου:
1) Απλή ειδοποίηση
Η απλή κατηγορία προειδοποίησης στο Σελήνιο εμφανίζει ορισμένες πληροφορίες ή προειδοποιήσεις στην οθόνη.
2) Γρήγορη ειδοποίηση.
Αυτή η ειδοποίηση προτροπής ζητάει κάποια εισαγωγή από τον χρήστη και το πρόγραμμα οδήγησης ιστού Selenium μπορεί να εισαγάγει το κείμενο χρησιμοποιώντας τα πλήκτρα αποστολής ("input"
…. ").3) Ειδοποίηση επιβεβαίωσης.
Αυτή η ειδοποίηση επιβεβαίωσης ζητά άδεια να κάνει κάποιο είδος λειτουργίας.
Πώς να χειριστείτε το Alert στο Selenium WebDriver
Η διεπαφή ειδοποιήσεων παρέχει τις παρακάτω λίγες μεθόδους που χρησιμοποιούνται ευρέως στο Selenium Webdriver.
1) άκυρη απόρριψη () // Για να κάνετε κλικ στο κουμπί «Ακύρωση» της ειδοποίησης.
driver.switchTo (). ειδοποίηση (). απόρριψη ();
2) άκυρη αποδοχή () // Για να κάνετε κλικ στο κουμπί «ΟΚ» της ειδοποίησης.
driver.switchTo (). ειδοποίηση (). αποδοχή ();
3) String getText () // Για να καταγράψετε το μήνυμα ειδοποίησης.
driver.switchTo (). alert (). getText ();
4) void sendKeys (String stringToSend) // Για να στείλετε ορισμένα δεδομένα στο πλαίσιο ειδοποίησης.
driver.switchTo (). alert (). sendKeys ("Text");
Μπορείτε να δείτε έναν αριθμό μεθόδων ειδοποίησης που εμφανίζονται όπως φαίνεται στην παρακάτω οθόνη που προτείνει το Eclipse.
Μπορούμε εύκολα να μεταβούμε σε ειδοποίηση από το κύριο παράθυρο χρησιμοποιώντας τη μέθοδο Selenium's .switchTo () .
Τώρα αυτοματοποιούμε το παρακάτω σενάριο.
Σε αυτό το σενάριο, θα χρησιμοποιήσουμε τον ιστότοπο επίδειξης Guru99 για να δείξουμε τον χειρισμό του Selenium Alert.
Βήμα 1) Εκκινήστε το πρόγραμμα περιήγησης ιστού και ανοίξτε τον ιστότοπο "http://demo.guru99.com/test/delete_customer.php"
Βήμα 2) Εισαγάγετε οποιοδήποτε αναγνωριστικό πελάτη.
Βήμα 3) Αφού εισαγάγετε το αναγνωριστικό πελάτη, κάντε κλικ στο κουμπί "Υποβολή".
Βήμα 4) Απόρριψη / αποδοχή της ειδοποίησης.
Χειρισμός ειδοποίησης στο Selenium Webdriver χρησιμοποιώντας το παραπάνω σενάριο
εισαγωγή org.openqa.selenium.By;εισαγωγή org.openqa.selenium.WebDriver;εισαγωγή org.openqa.selenium.chrome.ChromeDriver;εισαγωγή org.openqa.selenium.NoAlertPresentException;εισαγωγή org.openqa.selenium.Alert;δημόσια τάξη AlertDemo {public static void main (String [] args) ρίχνει NoAlertPresentException, InterruptException {System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Πρόγραμμα οδήγησης WebDriver = νέο ChromeDriver ();// Διαχείριση μηνυμάτων ειδοποίησηςdriver.get ("http://demo.guru99.com/test/delete_customer.php");driver.findElement (By.name ("cusid")). sendKeys ("53920");driver.findElement (By.name ("υποβολή")). υποβολή ();// Μετάβαση σε ΕιδοποίησηΕιδοποίηση ειδοποίησης = driver.switchTo (). Alert ();// Λήψη προειδοποιητικού μηνύματος.String alertMessage = driver.switchTo (). Alert (). GetText ();// Εμφάνιση μηνύματος ειδοποίησηςSystem.out.println (alertMessage);Thread.sleep (5000);// Αποδοχή ειδοποίησηςalert.accept ();}}
Έξοδος:
Όταν εκτελείτε τον παραπάνω κώδικα, ξεκινά τον ιστότοπο. Προσπαθήστε να διαγράψετε το Αναγνωριστικό πελάτη χειρίζοντας την ειδοποίηση επιβεβαίωσης που εμφανίζεται στην οθόνη και διαγράφοντας έτσι το αναγνωριστικό πελάτη από την εφαρμογή.
Πώς να χειριστείτε το αναδυόμενο παράθυρο Selenium χρησιμοποιώντας το Webdriver
Στην αυτοματοποίηση, όταν έχουμε πολλά παράθυρα σε οποιαδήποτε εφαρμογή ιστού, η δραστηριότητα μπορεί να χρειαστεί να αλλάξει τον έλεγχο μεταξύ πολλών παραθύρων από το ένα στο άλλο για να ολοκληρωθεί η λειτουργία. Μετά την ολοκλήρωση της λειτουργίας, πρέπει να επιστρέψει στο κύριο παράθυρο, δηλαδή στο παράθυρο γονέα στο Σελήνιο. Θα το δούμε περαιτέρω στο άρθρο με ένα παράδειγμα.
Στο πρόγραμμα οδήγησης ιστού Selenium υπάρχουν μέθοδοι μέσω των οποίων μπορούμε να χειριστούμε πολλά παράθυρα.
Driver.getWindowHandles ();
Για να χειριστούμε όλα τα ανοιχτά παράθυρα από πρόγραμμα οδήγησης ιστού, μπορούμε να χρησιμοποιήσουμε το "Driver.getWindowHandles ()" και μετά μπορούμε να αλλάξουμε το παράθυρο από το ένα παράθυρο στο άλλο σε μια εφαρμογή ιστού. Ο τύπος επιστροφής του είναι Iterator
Driver.getWindowHandle ();
Όταν ανοίξει ο ιστότοπος, πρέπει να χειριστούμε το κύριο παράθυρο από το driver.getWindowHandle () . Αυτό θα χειριστεί το τρέχον παράθυρο που το προσδιορίζει με μοναδικό τρόπο σε αυτήν την παρουσία προγράμματος οδήγησης. Ο τύπος επιστροφής του είναι String.
Για χειρισμό παραθύρων στο Σελήνιο, θα ακολουθήσουμε τα παρακάτω βήματα:
Τώρα, θα αυτοματοποιήσουμε το παρακάτω σενάριο για να δούμε πώς να χειριστούμε πολλά παράθυρα χρησιμοποιώντας το Selenium Webdriver.
Σε αυτό το σενάριο, θα χρησιμοποιήσουμε τον ιστότοπο επίδειξης "Guru99" για να δείξουμε τον χειρισμό παραθύρων.
Βήμα 1) Ξεκινήστε τον ιστότοπο.
Εκκινήστε το πρόγραμμα περιήγησης και ανοίξτε τον ιστότοπο " http://demo.guru99.com/popup.php "
Βήμα 2) Κάντε κλικ στο σύνδεσμο "Κάντε κλικ εδώ".
Όταν ο χρήστης κάνει κλικ στο σύνδεσμο "Κάντε κλικ εδώ", ανοίγει νέο θυγατρικό παράθυρο.
Βήμα 3) Ανοίγει το νέο παράθυρο παιδιού.
Ανοίγει ένα νέο παράθυρο, ζητήστε από τον χρήστη να εισαγάγει το αναγνωριστικό email και να υποβάλει τη σελίδα.
Βήμα 4) Εισαγάγετε το αναγνωριστικό email σας και υποβάλετε.
Βήμα 5) Εμφάνιση των διαπιστευτηρίων πρόσβασης κατά την υποβολή της σελίδας.
Όταν εκτελέσετε τον κωδικό, θα δείτε ότι το θυγατρικό παράθυρο είναι ανοιχτό σε νέα καρτέλα.
- Κλείστε το θυγατρικό παράθυρο στο οποίο εμφανίζονται τα διαπιστευτήρια.
- Μετάβαση στο γονικό παράθυρο.
Χειρισμός πολλαπλών παραθύρων στο πρόγραμμα οδήγησης Selenium web χρησιμοποιώντας το παραπάνω σενάριο.
εισαγωγή java.util.Iterator;εισαγωγή java.util.Set;εισαγωγή org.openqa.selenium.By;εισαγωγή org.openqa.selenium.WebDriver;εισαγωγή org.openqa.selenium.firefox.FirefoxDriver;δημόσια τάξη WindowHandle_Demo {public static void main (String [] args) ρίχνει το InterruptException {Πρόγραμμα οδήγησης WebDriver = νέο FirefoxDriver ();// Εκκίνηση του ιστότοπου.driver.get ("http://demo.guru99.com/popup.php");driver.manage (). window (). μεγιστοποίηση ();driver.findElement (By.xpath ("// * [περιέχει (@ href, 'popup.php')]")). κάντε κλικ ();String MainWindow = driver.getWindowHandle ();// Για να χειριστείτε όλα τα νέα ανοιχτά παράθυρα.Ορίστεs1 = driver.getWindowHandles ();Iterator i1 = s1.iterator ();ενώ (i1.hasΕπόμενο ()){String ChildWindow = i1.επόμενο ();εάν (! MainWindow.equalsIgnoreCase (ChildWindow)){// Μετάβαση σε παράθυρο παιδιούdriver.switchTo (). παράθυρο (ChildWindow);driver.findElement (By.name ("emailid")).sendKeys (" Αυτή η διεύθυνση ηλεκτρονικού ταχυδρομείου προστατεύεται από κακόβουλη χρήση. Χρειάζεται να ενεργοποιήσετε τη Javascript για να τη δείτε.");driver.findElement (By.name ("btnLogin")). κάντε κλικ στο ();// Κλείσιμο του παιδικού παραθύρου.driver.close ();}}// Μετάβαση σε παράθυρο γονέα, δηλαδή Κύριο παράθυρο.driver.switchTo (). παράθυρο (MainWindow);}}
Παραγωγή:
Όταν εκτελείτε τον παραπάνω κώδικα, ξεκινά τον ιστότοπο και κάνοντας κλικ στον σύνδεσμο "Κάντε κλικ εδώ", ανοίγει ένα θυγατρικό παράθυρο σε μια νέα καρτέλα. Μπορείτε να κλείσετε το θυγατρικό παράθυρο και να μεταβείτε στο γονικό παράθυρο μόλις ολοκληρωθεί η λειτουργία. Ως εκ τούτου, χειρίζεται περισσότερα από ένα παράθυρα στην εφαρμογή.
Διαχείριση πολλαπλών παραθύρων στο Σελήνιο
Συμπέρασμα:
- Ορίσαμε τους τύπους ειδοποίησης και τους δείξαμε με ένα στιγμιότυπο οθόνης.
- Επίδειξη χειρισμού της Ειδοποίησης με το Selenium WebDriver χρησιμοποιώντας συγκεκριμένο σενάριο.
- Διαχειρίστηκε πολλά παράθυρα με το Selenium WebDriver χρησιμοποιώντας συγκεκριμένο σενάριο.