Kuidas faili üles laadida ja alla laadida, kasutades Selenium

Laadi üles fail seleenis

Failide üleslaadimine WebDriveris toimub lihtsalt kasutades sendKeys() meetodit failivaliku sisestusväljal, et sisestada üleslaaditava faili tee.

Selles õpetuses õpime, kuidas toimida failide üles- ja allalaadimisega.

Kuidas faili üles laadida Selenium

Selle jaotise jaoks kasutame https://demo.guru99.com/test/upload/ kui meie testrakendus. See sait võimaldab igal külastajal hõlpsasti faile üles laadida, ilma et nad peaksid registreeruma.

Laadi fail üles Selenium
Käsitsege faili üleslaadimise hüpikakent Selenium Veebidraiver

Oletame, et soovime üles laadida faili "C:\newhtml.html". Meie WebDriveri kood peaks olema selline, nagu allpool näidatud.

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

Pärast selle skripti käivitamist peaksite saama faili edukalt üles laadida ja peaksite saama sarnase teate.

Laadi fail üles Selenium

Failide WebDriveri üleslaadimisel pidage meeles kahte asja

  1. Nupu „Sirvi” klõpsamist pole vaja simuleerida. WebDriver sisestab automaatselt failitee faili valiku tekstikasti element
  2. Kui määrate failitee oma Java IDE, kasutage kaldkriipsu jaoks õiget paomärki.

Laadi fail üles Selenium

Kuidas faili alla laadida Selenium Veebidraiver

WebDriver ei saa juurdepääsu dialoogiboksidele Allalaadimine mida brauserid esitavad, kui klõpsate allalaadimislingil või -nupul. Kuid me saame neist dialoogiboksidest mööda minna, kasutades eraldi programmi nimega "wget".

Mis on Wget?

Wget on väike ja hõlpsasti kasutatav käsureaprogramm, mida kasutatakse allalaadimiste automatiseerimiseks. Põhimõtteliselt pääseme allalaadimisprotsessi läbiviimiseks juurde Wgetile meie WebDriveri skripti kaudu.

Wgeti seadistamine

Step 1) Looge oma C-draivis uus kaust ja nimetage see "Wget".

Laadige alla wget.exe siit ja asetage see ülaltoodud sammuga loodud kausta Wget.

Wgeti seadistamine

Step 2) Avage Käivita, vajutades Windowsi klahvi + "R" ; tippige "cmd ja klõpsake nuppu OK

Wgeti seadistamine

Sisestage juurkataloogi liikumiseks käsk "cd /".

Wgeti seadistamine

Step 3) Sisestage käsk, et kontrollida, kas antud seadistus töötab

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

Wgeti seadistamine

Näib, et C-draivi kirjutamisel on probleem.

Step 4) Enne koodi käivitamist peate käsureal wget-i vead siluma Selenium Veebidraiver. Need vead jäävad püsima Eclipse ja veateated ei ole nii informatiivsed. Parim on esmalt wget tööle panna käsurea abil. Kui see töötab käsureal, töötab see kindlasti ka Eclipse.

Meie näites, nagu on näidatud sammus 3, on C-draivi kirjutamisel probleem. Muudame allalaadimiskohaks D-draivi ja kontrollime tulemusi.

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

Wgeti seadistamine

Messenger laaditi edukalt alla.

Enne jätkamist ärge unustage allalaaditud faili kustutada

WebDriveri ja Wgeti kasutamine

Järgmises näites kasutame populaarse vestlustarkvara nimega Yahoo allalaadimiseks WebDriveri ja wget Messenger. Meie baas-URL on https://demo.guru99.com/test/yahoo.html.

WebDriveri ja Wgeti kasutamine

Step 1) Importige pakett „java.io.IOException”, kuna peame IOExceptioni hiljem 4. sammus kinni püüdma.

WebDriveri ja Wgeti kasutamine

Step 2) Kasutage allalaadimislingi "href" väärtuse leidmiseks ja stringi muutujana salvestamiseks funktsiooni getAttribute(). Sel juhul nimetasime muutujale "sourceLocation".

WebDriveri ja Wgeti kasutamine

Step 3) Seadistage wgeti süntaks järgmise käsu abil.

WebDriveri ja Wgeti kasutamine

Step 4) Käivitage allalaadimisprotsess, helistades meie WebDriveri koodist wget-le.

WebDriveri ja Wgeti kasutamine

Selle kõige kokkuvõtteks võib teie WebDriveri kood välja näha nagu allpool näidatud.

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

Pärast selle koodi käivitamist kontrollige oma D-draivi ja veenduge, et Yahoo Messenger installer laaditi sinna edukalt alla.

WebDriveri ja Wgeti kasutamine

kokkuvõte

  • Failide üleslaadimine WebDriveris toimub lihtsalt kasutades sendKeys() meetodit failivaliku sisestusväljal, et sisestada üleslaaditava faili tee.
  • WebDriver ei saa failide allalaadimist üksi automatiseerida.
  • Lihtsaim viis failide allalaadimiseks WebDriveri abil on kasutada Wget.