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

Μεταφόρτωση αρχείου σε selenium

Η μεταφόρτωση αρχείων στο WebDriver γίνεται χρησιμοποιώντας απλώς τη μέθοδο sendKeys() στο πεδίο εισαγωγής επιλογής αρχείου για να εισαγάγετε τη διαδρομή προς το αρχείο που θα μεταφορτωθεί.

Σε αυτό το σεμινάριο, θα μάθουμε πώς να αντιμετωπίζουμε τις μεταφορτώσεις και τις λήψεις αρχείων.

Πώς να ανεβάσετε αρχείο σε Selenium

Για αυτήν την ενότητα, θα χρησιμοποιήσουμε https://demo.guru99.com/test/upload/ ως εφαρμογή δοκιμής μας. Αυτός ο ιστότοπος επιτρέπει εύκολα σε οποιονδήποτε επισκέπτη να ανεβάζει αρχεία χωρίς να χρειάζεται να εγγραφεί.

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

Ας υποθέσουμε ότι θέλουμε να ανεβάσουμε το αρχείο "C:\newhtml.html". Ο κώδικας WebDriver μας θα πρέπει να είναι όπως αυτός που φαίνεται παρακάτω.

package newproject;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
public class PG9 {
    public static void main(String[] args) {
        System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
        String baseUrl = "https://demo.guru99.com/test/upload/";
        WebDriver driver = new FirefoxDriver();

        driver.get(baseUrl);
        WebElement uploadElement = driver.findElement(By.id("uploadfile_0"));

        // enter the file path onto the file-selection input field
        uploadElement.sendKeys("C:\\newhtml.html");

        // check the "I accept the terms of service" check box
        driver.findElement(By.id("terms")).click();

        // click the "UploadFile" button
        driver.findElement(By.name("send")).click();
        }
}

Αφού εκτελέσετε αυτό το σενάριο, θα πρέπει να μπορείτε να ανεβάσετε το αρχείο με επιτυχία και θα πρέπει να λάβετε ένα παρόμοιο μήνυμα.

Μεταφόρτωση αρχείου σε Selenium

Θυμηθείτε το followwing δύο πράγματα κατά τη μεταφόρτωση αρχείων στο WebDriver

  1. Δεν χρειάζεται να προσομοιώσετε το κλικ του κουμπιού «Αναζήτηση». Το WebDriver εισάγει αυτόματα τη διαδρομή του αρχείου στο κείμενο επιλογής αρχείου box απο στοιχείο
  2. Όταν ορίζετε τη διαδρομή του αρχείου στο Java IDE, χρησιμοποιήστε τον κατάλληλο χαρακτήρα διαφυγής για την αντίστροφη κάθετο.

Μεταφόρτωση αρχείου σε Selenium

Πώς να κατεβάσετε ένα αρχείο σε Selenium Πρόγραμμα οδήγησης Web

Το WebDriver δεν έχει δυνατότητα πρόσβασης στο παράθυρο διαλόγου Λήψη boxes παρουσιάζεται από προγράμματα περιήγησης όταν κάνετε κλικ σε έναν σύνδεσμο ή ένα κουμπί λήψης. Ωστόσο, μπορούμε να παρακάμψουμε αυτούς τους διαλόγους boxΧρησιμοποιώντας ένα ξεχωριστό πρόγραμμα που ονομάζεται "wget".

Τι είναι το Wget;

Το Wget είναι ένα μικρό και εύχρηστο πρόγραμμα γραμμής εντολών που χρησιμοποιείται για την αυτοματοποίηση των λήψεων. Βασικά, θα έχουμε πρόσβαση στο Wget από το σενάριο WebDriver για να εκτελέσουμε τη διαδικασία λήψης.

Ρύθμιση του Wget

Βήμα 1) Στη μονάδα δίσκου C, δημιουργήστε έναν νέο φάκελο και ονομάστε τον "Wget".

Κατεβάστε το wget.exe από εδώ και τοποθετήστε το στο φάκελο Wget που δημιουργήσατε από το παραπάνω βήμα.

Ρύθμιση του Wget

Βήμα 2) Ανοίξτε το Run πατώντας windows πλήκτρο + "R" ; πληκτρολογήστε cmd και κάντε κλικ στο ok

Ρύθμιση του Wget

Πληκτρολογήστε την εντολή "cd /" για να μετακινηθείτε στον ριζικό κατάλογο

Ρύθμιση του Wget

Βήμα 3) Πληκτρολογήστε την εντολή για να ελέγξετε εάν η συγκεκριμένη ρύθμιση λειτουργεί

cmd /c C:\\Wget\\wget.exe -P C: --no-check-certificate https://demo.guru99.com/selenium/msgr11us.exe

Ρύθμιση του Wget

Φαίνεται ότι υπάρχει πρόβλημα κατά την εγγραφή στη μονάδα δίσκου C.

Βήμα 4) Πρέπει να διορθώσετε τα σφάλματα wget στη γραμμή εντολών προτού εκτελέσετε τον κώδικα χρησιμοποιώντας Selenium Webdriver. Αυτά τα σφάλματα θα παραμείνουν Eclipse και τα μηνύματα σφάλματος δεν θα είναι τόσο ενημερωτικά. Είναι καλύτερο να αρχίσετε να δουλεύετε το wget χρησιμοποιώντας τη γραμμή εντολών. Εάν λειτουργεί στη γραμμή εντολών, σίγουρα θα λειτουργήσει Eclipse.

Στο παράδειγμά μας, όπως φαίνεται στο βήμα 3, υπάρχει πρόβλημα με την εγγραφή στη μονάδα δίσκου C. Ας αλλάξουμε τη θέση λήψης σε μονάδα δίσκου D και ας ελέγξουμε τα αποτελέσματα.

cmd /c C:\\Wget\\wget.exe -P D: --no-check-certificate https://demo.guru99.com/selenium/msgr11us.exe

Ρύθμιση του Wget

Η λήψη του Messenger έγινε με επιτυχία.

Πριν προχωρήσετε περαιτέρω, μην ξεχάσετε να διαγράψετε το ληφθέν αρχείο

Χρήση WebDriver και Wget

Στο following Για παράδειγμα, θα χρησιμοποιήσουμε το WebDriver και το wget για να κατεβάσουμε ένα δημοφιλές λογισμικό συνομιλίας που ονομάζεται Yahoo Messenger. Η βασική μας διεύθυνση URL θα είναι https://demo.guru99.com/test/yahoo.html.

Χρήση WebDriver και Wget

Βήμα 1) Εισαγάγετε το πακέτο "java.io.IOException" γιατί θα πρέπει να πιάσουμε ένα IOException later στο Βήμα 4.

Χρήση WebDriver και Wget

Βήμα 2) Χρησιμοποιήστε την getAttribute() για να λάβετε την τιμή "href" του συνδέσμου λήψης και να την αποθηκεύσετε ως μεταβλητή String. Σε αυτήν την περίπτωση, ονομάσαμε τη μεταβλητή ως "sourceLocation".

Χρήση WebDriver και Wget

Βήμα 3) Ρυθμίστε τη σύνταξη για το wget χρησιμοποιώντας το following εντολή.

Χρήση WebDriver και Wget

Βήμα 4) Ξεκινήστε τη διαδικασία λήψης καλώντας το wget από τον κώδικα WebDriver.

Χρήση WebDriver και Wget

Για να τα συνοψίσουμε όλα, ο κώδικας WebDriver μπορεί να μοιάζει με αυτόν που φαίνεται παρακάτω.

package newproject;
import java.io.IOException;

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
public class PG8 {
    public static void main(String[] args) {
        
        System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
                String baseUrl = "https://demo.guru99.com/test/yahoo.html";
        WebDriver driver = new FirefoxDriver();

        driver.get(baseUrl);
        WebElement downloadButton = driver.findElement(By
        .id("messenger-download"));
        String sourceLocation = downloadButton.getAttribute("href");
        String wget_command = "cmd /c C:\\Wget\\wget.exe -P D: --no-check-certificate " + sourceLocation;

        try {
        Process exec = Runtime.getRuntime().exec(wget_command);
        int exitVal = exec.waitFor();
        System.out.println("Exit value: " + exitVal);
        } catch (InterruptedException | IOException ex) {
        System.out.println(ex.toString());
        }
        driver.close();
        }
        
}

Αφού εκτελέσετε αυτόν τον κώδικα, ελέγξτε τη μονάδα D και βεβαιωθείτε ότι το πρόγραμμα εγκατάστασης του Yahoo Messenger έγινε με επιτυχία εκεί.

Χρήση WebDriver και Wget

Χαρακτηριστικά

  • Η μεταφόρτωση αρχείων στο WebDriver γίνεται χρησιμοποιώντας απλώς τη μέθοδο sendKeys() στο πεδίο εισαγωγής επιλογής αρχείου για να εισαγάγετε τη διαδρομή προς το αρχείο που θα μεταφορτωθεί.
  • Το WebDriver δεν μπορεί να αυτοματοποιήσει τη λήψη αρχείων από μόνο του.
  • Ο ευκολότερος τρόπος λήψης αρχείων χρησιμοποιώντας το WebDriver είναι να χρησιμοποιήσετε το Wget.