Σε αυτό το σεμινάριο, θα μάθουμε πώς να αντιμετωπίζουμε τις μεταφορτώσεις αρχείων και τις λήψεις.
Μεταφόρτωση αρχείων
Για αυτήν την ενότητα, θα χρησιμοποιήσουμε τη διεύθυνση http://demo.guru99.com/test/upload/ ως δοκιμαστική εφαρμογή μας. Αυτός ο ιστότοπος επιτρέπει σε οποιονδήποτε επισκέπτη να ανεβάζει αρχεία χωρίς να χρειάζεται να εγγραφεί.
Η μεταφόρτωση αρχείων στο WebDriver γίνεται απλά χρησιμοποιώντας τη μέθοδο sendKeys () στο πεδίο εισαγωγής επιλογής αρχείου για να εισαγάγετε τη διαδρομή προς το αρχείο που θα μεταφορτωθεί.
χειριστείτε το αναδυόμενο παράθυρο μεταφόρτωσης αρχείων στο πρόγραμμα οδήγησης σεληνίουΑς υποθέσουμε ότι θέλουμε να ανεβάσετε το αρχείο "C: \ newhtml.html". Ο κώδικας WebDriver πρέπει να είναι όπως αυτός που φαίνεται παρακάτω.
πακέτο newproject;εισαγωγή org.openqa.selenium. *;εισαγωγή org.openqa.selenium.firefox.FirefoxDriver;δημόσια τάξη PG9 {Δημόσιο στατικό κενό (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");String baseUrl = "http://demo.guru99.com/test/upload/";Πρόγραμμα οδήγησης WebDriver = νέο FirefoxDriver ();driver.get (baseUrl);WebElement uploadElement = driver.findElement (By.id ("uploadfile_0"));// εισαγάγετε τη διαδρομή αρχείου στο πεδίο εισαγωγής επιλογής αρχείωνuploadElement.sendKeys ("C: \\ newhtml.html");// επιλέξτε το πλαίσιο ελέγχου "Αποδέχομαι τους όρους υπηρεσίας"driver.findElement (By.id ("όρους")). κάντε κλικ στο ();// κάντε κλικ στο κουμπί "UploadFile"driver.findElement (By.name ("send")). κάντε κλικ στο ();}}
Αφού εκτελέσετε αυτό το σενάριο, θα πρέπει να μπορείτε να ανεβάσετε το αρχείο με επιτυχία και να λάβετε ένα μήνυμα παρόμοιο με αυτό.
Θυμηθείτε να ακολουθείτε δύο πράγματα κατά τη μεταφόρτωση αρχείων στο WebDriver
- Δεν χρειάζεται να προσομοιώσετε το κλικ του κουμπιού "Αναζήτηση". Το WebDriver εισάγει αυτόματα τη διαδρομή αρχείου στο πλαίσιο κειμένου επιλογής αρχείων του στοιχείου
- Όταν ρυθμίζετε τη διαδρομή αρχείου στο Java IDE, χρησιμοποιήστε τον κατάλληλο χαρακτήρα διαφυγής για την κάθετο.
Λήψη αρχείων
Το WebDriver δεν έχει δυνατότητα πρόσβασης στα παράθυρα διαλόγου Λήψη που παρουσιάζονται από προγράμματα περιήγησης όταν κάνετε κλικ σε έναν σύνδεσμο ή κουμπί λήψης. Ωστόσο, μπορούμε να παρακάμψουμε αυτά τα πλαίσια διαλόγου χρησιμοποιώντας ένα ξεχωριστό πρόγραμμα που ονομάζεται "wget".
Τι είναι το Wget;
Το Wget είναι ένα μικρό και εύχρηστο πρόγραμμα γραμμής εντολών που χρησιμοποιείται για την αυτοματοποίηση των λήψεων . Βασικά, θα έχουμε πρόσβαση στο Wget από το σενάριο WebDriver για να εκτελέσουμε τη διαδικασία λήψης.
Ρύθμιση του Wget
Βήμα 1: Στη μονάδα δίσκου C, δημιουργήστε έναν νέο φάκελο και ονομάστε τον ως "Wget".
Κατεβάστε το wget.exe από εδώ και τοποθετήστε το στο φάκελο Wget που δημιουργήσατε από το παραπάνω βήμα.
Βήμα 2: Άνοιγμα Εκτέλεση πατώντας το πλήκτρο windows + "R"; πληκτρολογήστε "cmd & κάντε κλικ στο ok
Πληκτρολογήστε την εντολή "cd /" για να μετακινηθείτε στον ριζικό κατάλογο
Βήμα 3: Πληκτρολογήστε την εντολή για να ελέγξετε αν η συγκεκριμένη ρύθμιση λειτουργεί
cmd / c C: \\ Wget \\ wget.exe -PC: --no-check-πιστοποιητικό http://demo.guru99.com/selenium/msgr11us.exe
Φαίνεται ότι υπάρχει ένα πρόβλημα που γράφεται στη μονάδα δίσκου C.
Βήμα 4: Πρέπει να διορθώσετε τα σφάλματα wget στη γραμμή εντολών προτού εκτελέσετε τον κώδικα χρησιμοποιώντας το Selenium Webdriver. Αυτά τα σφάλματα θα παραμείνουν στο Eclipse και τα μηνύματα σφάλματος δεν θα είναι τόσο ενημερωτικά. Καλύτερα να δουλέψετε πρώτα χρησιμοποιώντας τη γραμμή εντολών. Εάν λειτουργεί στη γραμμή εντολών, σίγουρα θα λειτουργήσει στο Eclipse.
Στο παράδειγμά μας, όπως φαίνεται στο βήμα 3, υπάρχει πρόβλημα κατά την εγγραφή στη μονάδα δίσκου C. Ας αλλάξουμε την τοποθεσία λήψης σε μονάδα D και ελέγξτε τα αποτελέσματα.
cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-πιστοποιητικό http://demo.guru99.com/selenium/msgr11us.exe
Η λήψη του Messenger ολοκληρώθηκε με επιτυχία.
Πριν προχωρήσετε περαιτέρω μην ξεχάσετε να διαγράψετε το ληφθέν αρχείο
Χρήση του WebDriver και του Wget
Στο παρακάτω παράδειγμα, θα χρησιμοποιήσουμε το WebDriver και θα κάνουμε λήψη ενός δημοφιλούς λογισμικού συνομιλίας που ονομάζεται Yahoo Messenger. Η βασική διεύθυνση URL θα είναι http://demo.guru99.com/test/yahoo.html.
Βήμα 1
Εισαγάγετε το πακέτο "java.io.IOException" επειδή θα πρέπει να πιάσουμε μια IOException αργότερα στο Βήμα 4.
Βήμα 2
Χρησιμοποιήστε το getAttribute () για να αποκτήσετε την τιμή "href" του συνδέσμου λήψης και να το αποθηκεύσετε ως μεταβλητή συμβολοσειράς. Σε αυτήν την περίπτωση, ονομάσαμε τη μεταβλητή ως "sourceLocation".
Βήμα 3
Ρυθμίστε τη σύνταξη για το wget χρησιμοποιώντας την ακόλουθη εντολή.
Βήμα 4
Ξεκινήστε τη διαδικασία λήψης καλώντας το wget από τον κώδικα WebDriver.
Συνοψίζοντας, ο κώδικας WebDriver θα μπορούσε να μοιάζει με αυτόν που φαίνεται παρακάτω.
πακέτο newproject;εισαγωγή java.io.IOException;εισαγωγή org.openqa.selenium. *;εισαγωγή org.openqa.selenium.firefox.FirefoxDriver;δημόσια τάξη PG8 {Δημόσιο στατικό κενό (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");String baseUrl = "http://demo.guru99.com/test/yahoo.html";Πρόγραμμα οδήγησης WebDriver = νέο FirefoxDriver ();driver.get (baseUrl);Λήψη WebElementButton = driver.findElement (Από.id ("messenger-download"));String sourceLocation = downloadButton.getAttribute ("href");Συμβολοσειρά wget_command = "cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-certificate" + sourceLocation;προσπαθήστε {Διαδικασία exec = Runtime.getRuntime (). Exec (wget_command);int exitVal = exec.waitFor ();System.out.println ("Έξοδος τιμή: + exitVal);} catch (InterruptException | IOException ex) {System.out.println (ex.toString ());}driver.close ();}}
Αφού εκτελέσετε αυτόν τον κωδικό, ελέγξτε τη μονάδα δίσκου D και βεβαιωθείτε ότι το πρόγραμμα εγκατάστασης του Yahoo Messenger πραγματοποιήθηκε με επιτυχία.
Περίληψη
- Η μεταφόρτωση αρχείων στο WebDriver γίνεται απλά χρησιμοποιώντας τη μέθοδο sendKeys () στο πεδίο εισαγωγής επιλογής αρχείου για να εισαγάγετε τη διαδρομή προς το αρχείο που θα μεταφορτωθεί.
- Το WebDriver δεν μπορεί να αυτοματοποιήσει τη λήψη αρχείων από μόνο του.
- Ο ευκολότερος τρόπος λήψης αρχείων μέσω του WebDriver είναι να χρησιμοποιήσετε το Wget.