Kako prenijeti i preuzeti datoteku pomoću Selenium Webdriver

Prenesi datoteku u selenium

Prijenos datoteka u WebDriver obavlja se jednostavnom upotrebom metode sendKeys() u polju za unos datoteke za odabir datoteke za unos putanje do datoteke koju želite prenijeti.

U ovom vodiču naučit ćemo kako se nositi s učitavanjem i preuzimanjem datoteka.

Kako učitati datoteku u Selenium

Za ovaj odjeljak koristit ćemo https://demo.guru99.com/test/upload/ kao našu testnu aplikaciju. Ova stranica jednostavno omogućuje bilo kojem posjetitelju učitavanje datoteka bez potrebe da se prijavi.

Učitaj datoteku Selenium
Rukovanje skočnim prozorom za prijenos datoteke Selenium Webdriver

Recimo da želimo učitati datoteku “C:\newhtml.html”. Naš WebDriver kod trebao bi biti poput onog prikazanog u nastavku.

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

Nakon pokretanja ove skripte, trebali biste moći uspješno učitati datoteku i trebali biste dobiti poruku sličnu ovoj.

Učitaj datoteku Selenium

Imajte na umu dvije stvari kada učitavate datoteke u WebDriver

  1. Nema potrebe za simuliranjem klika na gumb "Pregledaj". WebDriver automatski unosi put datoteke u tekstni okvir za odabir datoteke element
  2. Prilikom postavljanja putanje datoteke u vašem Java IDE, koristite ispravan izlazni znak za kosu crtu unatrag.

Učitaj datoteku Selenium

Kako preuzeti datoteku u Selenium Webdriver

WebDriver nema mogućnost pristupa dijaloškim okvirima za preuzimanje prikazuju preglednici kada kliknete na vezu ili gumb za preuzimanje. Međutim, te dijaloške okvire možemo zaobići pomoću zasebnog programa pod nazivom "wget".

Što je Wget?

Wget je mali program naredbenog retka jednostavan za korištenje koji se koristi za automatiziranje preuzimanja. Uglavnom, pristupit ćemo Wgetu iz naše WebDriver skripte kako bismo izvršili postupak preuzimanja.

Postavljanje Wget-a

Korak 1) Na vašem C pogonu stvorite novu mapu i nazovite je "Wget".

Preuzmite wget.exe odavde i smjestite ga u mapu Wget koju ste stvorili u gornjem koraku.

Postavljanje Wget-a

Korak 2) Otvorite Run pritiskom na Windows tipku + “R” ; upišite "cmd" i kliknite OK

Postavljanje Wget-a

Upišite naredbu “cd /” za prelazak u korijenski direktorij

Postavljanje Wget-a

Korak 3) Upišite naredbu kako biste provjerili radi li zadana postavka

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

Postavljanje Wget-a

Čini se da postoji problem s pisanjem na C pogon.

Korak 4) Morate otkloniti pogreške wget-a u naredbenom retku prije nego što izvršite kod pomoću Selenium Webdriver. Te će se pogreške zadržati Eclipse a poruke o pogreškama neće biti toliko informativne. Najbolje je najprije natjerati wget da radi pomoću naredbenog retka. Ako radi u naredbenom retku, sigurno će raditi Eclipse.

U našem primjeru, kao što je prikazano u koraku 3, postoji problem pri pisanju u pogon C. Promijenimo mjesto preuzimanja na D disk i provjerimo rezultate.

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

Postavljanje Wget-a

Messenger je uspješno preuzeto.

Prije nego što nastavite dalje, ne zaboravite izbrisati preuzetu datoteku

Korištenje WebDrivera i Wgeta

U sljedećem primjeru koristit ćemo WebDriver i wget za preuzimanje popularnog softvera za chat koji se zove Yahoo Messenger. Naš osnovni URL bit će https://demo.guru99.com/test/yahoo.html.

Korištenje WebDrivera i Wgeta

Korak 1) Uvezite paket "java.io.IOException" jer ćemo kasnije u 4. koraku morati uhvatiti IOException.

Korištenje WebDrivera i Wgeta

Korak 2) Upotrijebite getAttribute() da dobijete vrijednost "href" veze za preuzimanje i spremite je kao varijablu String. U ovom smo slučaju varijablu nazvali "sourceLocation".

Korištenje WebDrivera i Wgeta

Korak 3) Postavite sintaksu za wget pomoću sljedeće naredbe.

Korištenje WebDrivera i Wgeta

Korak 4) Pokrenite proces preuzimanja pozivom wget iz našeg WebDriver koda.

Korištenje WebDrivera i Wgeta

Da sve sažmemo, vaš WebDriver kod bi mogao izgledati kao ovaj prikazan ispod.

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

Nakon izvršavanja ovog koda, provjerite svoj D pogon i provjerite je li Yahoo Messenger instalacijski program je tamo uspješno preuzet.

Korištenje WebDrivera i Wgeta

rezime

  • Prijenos datoteka u WebDriver obavlja se jednostavnom upotrebom metode sendKeys() u polju za unos datoteke za odabir datoteke za unos putanje do datoteke koju želite prenijeti.
  • WebDriver ne može sam automatizirati preuzimanje datoteka.
  • Najlakši način preuzimanja datoteka pomoću WebDrivera je korištenje Wgeta.