Cum să încărcați și să descărcați un fișier folosind Selenium

Încărcați fișierul în selenium

Încărcarea fișierelor în WebDriver se face prin simpla utilizare a metodei sendKeys() în câmpul de introducere de selectare a fișierului pentru a introduce calea către fișierul care urmează să fie încărcat.

În acest tutorial, vom învăța Cum să gestionăm încărcările și descărcările de fișiere.

Cum să încărcați fișierul în Selenium

Pentru această secțiune, vom folosi https://demo.guru99.com/test/upload/ ca aplicația noastră de testare. Acest site permite cu ușurință oricărui vizitator să încarce fișiere fără a fi necesar să se înregistreze.

Încărcați fișierul în Selenium
Gestionați fereastra pop-up de încărcare a fișierelor Selenium Webdriver

Să presupunem că dorim să încărcăm fișierul „C:\newhtml.html”. Codul nostru WebDriver ar trebui să fie ca cel prezentat mai jos.

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

După rularea acestui script, ar trebui să puteți încărca fișierul cu succes și ar trebui să primiți un mesaj similar cu acesta.

Încărcați fișierul în Selenium

Nu uitați să urmați două lucruri atunci când încărcați fișiere în WebDriver

  1. Nu este nevoie să simulați clicul pe butonul „Răsfoiți”. WebDriver introduce automat calea fișierului în caseta de text de selecție a fișierului element
  2. Când setați calea fișierului în dvs Java IDE, utilizați caracterul de escape adecvat pentru back-slash.

Încărcați fișierul în Selenium

Cum să descărcați un fișier în Selenium Webdriver

WebDriver nu are capacitatea de a accesa casetele de dialog Descărcare prezentate de browsere atunci când faceți clic pe un link sau un buton de descărcare. Cu toate acestea, putem ocoli aceste casete de dialog folosind un program separat numit „wget”.

Ce este Wget?

Wget este un program de linie de comandă mic și ușor de utilizat, folosit pentru automatizarea descărcărilor. Practic, vom accesa Wget din scriptul nostru WebDriver pentru a efectua procesul de descărcare.

Configurarea Wget

Pas 1) În unitatea C, creați un folder nou și denumiți-l ca „Wget”.

Descărcați wget.exe de aici și plasați-l în folderul Wget pe care l-ați creat de la pasul de mai sus.

Configurarea Wget

Pas 2) Deschideți Run apăsând tasta Windows + „R”; tastați „cmd și faceți clic pe ok

Configurarea Wget

Tastați comanda „cd /” pentru a vă muta în directorul rădăcină

Configurarea Wget

Pas 3) Tastați comanda pentru a verifica dacă configurația dată funcționează

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

Configurarea Wget

Se pare că există o problemă la scrierea pe unitatea C.

Pas 4) Trebuie să depanați erorile wget din linia de comandă înainte de a executa codul folosind Selenium Webdriver. Aceste erori vor persista în Eclipse iar mesajele de eroare nu vor fi la fel de informative. Cel mai bine este să puneți mai întâi wget să lucreze folosind linia de comandă. Dacă funcționează în linia de comandă, va funcționa cu siguranță în Eclipse.

În exemplul nostru, așa cum se arată în pasul 3, există o problemă la scrierea în unitatea C. Să schimbăm locația de descărcare la unitatea D și să verificăm rezultatele.

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

Configurarea Wget

Messenger a fost descărcat cu succes.

Înainte de a continua, nu uitați să ștergeți fișierul descărcat

Folosind WebDriver și Wget

În exemplul următor, vom folosi WebDriver și wget pentru a descărca un software de chat popular numit Yahoo Messenger. URL-ul nostru de bază va fi https://demo.guru99.com/test/yahoo.html.

Folosind WebDriver și Wget

Pas 1) Importați pachetul „java.io.IOException” deoarece va trebui să prindem o IOException mai târziu în Pasul 4.

Folosind WebDriver și Wget

Pas 2) Utilizați getAttribute() pentru a obține valoarea „href” a link-ului de descărcare și salvați-o ca variabilă String. În acest caz, am numit variabila „sourceLocation”.

Folosind WebDriver și Wget

Pas 3) Configurați sintaxa pentru wget folosind următoarea comandă.

Folosind WebDriver și Wget

Pas 4) Inițiază procesul de descărcare apelând wget din codul nostru WebDriver.

Folosind WebDriver și Wget

Pentru a rezuma totul, codul dvs. WebDriver ar putea arăta ca cel prezentat mai jos.

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

După executarea acestui cod, verificați unitatea D și verificați dacă Yahoo Messenger programul de instalare a fost descărcat cu succes acolo.

Folosind WebDriver și Wget

Rezumat

  • Încărcarea fișierelor în WebDriver se face prin simpla utilizare a metodei sendKeys() în câmpul de introducere de selectare a fișierului pentru a introduce calea către fișierul care urmează să fie încărcat.
  • WebDriver nu poate automatiza descărcarea fișierelor pe cont propriu.
  • Cel mai simplu mod de a descărca fișiere folosind WebDriver este să utilizați Wget.