Hogyan töltsünk fel és töltsünk le egy fájlt a segítségével Selenium Webdriver

Fájl feltöltése szelénben

A fájlok WebDriver-ba való feltöltése egyszerűen a sendKeys() metódus használatával történik a fájlkiválasztó beviteli mezőben, és megadja a feltöltendő fájl elérési útját.

Ebben az oktatóanyagban megtanuljuk, hogyan kell kezelni a fájlok feltöltését és letöltését.

Hogyan töltsünk fel fájlt Selenium

Ehhez a szakaszhoz fogjuk használni https://demo.guru99.com/test/upload/ mint tesztalkalmazásunk. Ez az oldal könnyen lehetővé teszi bármely látogató számára, hogy regisztráció nélkül töltsön fel fájlokat.

Fájl feltöltése Selenium
Fájlfeltöltés előugró ablak kezelése Selenium Webdriver

Tegyük fel, hogy a „C:\newhtml.html” fájlt szeretnénk feltölteni. A WebDriver kódunknak az alábbihoz hasonlónak kell lennie.

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

A szkript futtatása után sikeresen feltöltheti a fájlt, és ehhez hasonló üzenetet kell kapnia.

Fájl feltöltése Selenium

Ne felejtse el a következő két dolgot, amikor fájlokat tölt fel a WebDriver-ba

  1. Nincs szükség a „Tallózás” gomb megnyomásának szimulálására. A WebDriver automatikusan beírja a fájl elérési útját a fájlkiválasztó szövegmezőbe elem
  2. Amikor beállítja a fájl elérési útját a Java IDE, használja a megfelelő escape karaktert a fordított perjelhez.

Fájl feltöltése Selenium

Hogyan lehet letölteni egy fájlt a Selenium Webdriver

A WebDriver nem tudja elérni a Letöltés párbeszédpaneleket a böngészők megjelenítik, amikor egy letöltési hivatkozásra vagy gombra kattint. Ezeket a párbeszédpaneleket azonban megkerülhetjük egy különálló „wget” programmal.

Mi az a Wget?

A Wget egy kicsi és könnyen használható parancssori program, amely a letöltések automatizálására szolgál. Alapvetően a Wget-et a WebDriver szkriptünkből fogjuk elérni a letöltési folyamat végrehajtásához.

A Wget beállítása

Step 1) A C meghajtóban hozzon létre egy új mappát, és nevezze el „Wget”-nek.

Töltse le a wget.exe fájlt innen és helyezze a fenti lépésben létrehozott Wget mappába.

A Wget beállítása

Step 2) Nyissa meg a Futtatást a Windows billentyű + „R” megnyomásával; írja be a "cmd" parancsot, és kattintson az OK gombra

A Wget beállítása

A gyökérkönyvtárba lépéshez írja be a „cd /” parancsot

A Wget beállítása

Step 3) Írja be a parancsot, hogy ellenőrizze, hogy az adott beállítás működik-e

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

A Wget beállítása

Úgy tűnik, hogy probléma van a C meghajtóba való írással.

Step 4) A kód futtatása előtt a parancssorban meg kell oldania a wget hibákat Selenium Webdriver. Ezek a hibák továbbra is megmaradnak Eclipse és a hibaüzenetek nem lesznek olyan informatívak. A legjobb, ha először a wget-et parancssor segítségével állítja működésbe. Ha parancssorban működik, akkor biztosan működni fog Eclipse.

Példánkban, amint a 3. lépésben látható, probléma van a C meghajtóba való írással. Változtassuk meg a letöltési helyet D meghajtóra, és ellenőrizzük az eredményeket.

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

A Wget beállítása

Messenger sikeresen letöltötte.

Mielőtt továbblépne, ne felejtse el törölni a letöltött fájlt

WebDriver és Wget használata

A következő példában a WebDriver és a wget segítségével töltjük le a Yahoo nevű népszerű csevegőszoftvert Messenger. Alap URL-ünk a következő lesz https://demo.guru99.com/test/yahoo.html.

WebDriver és Wget használata

Step 1) Importálja a „java.io.IOException” csomagot, mert később, a 4. lépésben el kell fognunk egy IOException-t.

WebDriver és Wget használata

Step 2) A getAttribute() segítségével kapja meg a letöltési hivatkozás „href” értékét, és mentse el String változóként. Ebben az esetben a változót „sourceLocation”-nek neveztük el.

WebDriver és Wget használata

Step 3) Állítsa be a wget szintaxisát a következő paranccsal.

WebDriver és Wget használata

Step 4) Indítsa el a letöltési folyamatot a wget meghívásával a WebDriver kódunkból.

WebDriver és Wget használata

Összefoglalva, a WebDriver kódja az alábbiak szerint nézhet ki.

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

A kód végrehajtása után ellenőrizze a D meghajtót, és ellenőrizze, hogy a Yahoo Messenger a telepítő sikeresen letöltődött onnan.

WebDriver és Wget használata

Összegzésként

  • A fájlok WebDriver-ba való feltöltése egyszerűen a sendKeys() metódus használatával történik a fájlkiválasztó beviteli mezőben, és megadja a feltöltendő fájl elérési útját.
  • A WebDriver önmagában nem tudja automatizálni a fájlok letöltését.
  • A fájlok WebDriver segítségével történő letöltésének legegyszerűbb módja a Wget használata.