Kako prenijeti & Preuzmite datoteku pomoću Selenium Webdriver

Sadržaj:

Anonim

U ovom uputstvu naučit ćemo kako se nositi s prijenosima datoteka i preuzimanjima.

Učitavanje datoteka

Za ovaj odjeljak koristit ćemo http://demo.guru99.com/test/upload/ kao našu testnu aplikaciju. Ova stranica lako omogućuje bilo kojem posjetitelju učitavanje datoteka bez potrebe za registracijom.

Prijenos datoteka u WebDriver vrši se jednostavnom uporabom metode sendKeys () u polju za unos datoteke za odabir datoteke da biste unijeli put do datoteke koju želite prenijeti.

Rukovanje skočnim prozorima za prijenos datoteka u Selenium Webdriver
rukovati skočnim prozorima za prijenos datoteka u selenium webdriver

Recimo da želimo prenijeti datoteku "C: \ newhtml.html". Naš kôd WebDriver trebao bi biti poput prikazanog u nastavku.

paket noviprojekt;uvoz org.openqa.selenium. *;uvoz org.openqa.selenium.firefox.FirefoxDriver;javna klasa PG9 {javna statička void glavna (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");String baseUrl = "http://demo.guru99.com/test/upload/";Upravljački program za WebDriver = novi FirefoxDriver ();driver.get (baseUrl);WebElement uploadElement = driver.findElement (By.id ("uploadfile_0"));// unesite put datoteke u polje za unos odabira datotekeuploadElement.sendKeys ("C: \\ newhtml.html");// potvrdite okvir "Prihvaćam uvjete usluge"driver.findElement (By.id ("pojmovi")). click ();// kliknite gumb "UploadFile"driver.findElement (By.name ("send")). click ();}}

Nakon pokretanja ove skripte, trebali biste uspješno prenijeti datoteku i trebali biste dobiti poruku sličnu ovoj.

Ne zaboravite slijediti dvije stvari prilikom prijenosa datoteka u WebDriver

  1. Nije potrebno simulirati klikanje gumba "Pregledaj". WebDriver automatski unosi put do datoteke u tekstualni okvir za odabir datoteke elementa
  2. Prilikom postavljanja puta do datoteke u vašem Java IDE-u, upotrijebite odgovarajući izlazni znak za kosu crtu.

Preuzimanje datoteka

WebDriver nema mogućnost pristupa dijaloškim okvirima za preuzimanje koje su prikazali preglednici kada kliknete vezu ili gumb za preuzimanje. Međutim, ove dijaloške okvire možemo zaobići pomoću zasebnog programa nazvanog "wget".

Što je Wget?

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

Postavljanje Wgeta

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

Preuzmite wget.exe odavde i stavite ga u mapu Wget koju ste stvorili iz gornjeg koraka.

Korak 2: Otvorite Pokreni pritiskom tipke Windows + "R"; utipkajte "cmd i kliknite ok

Upišite naredbu "cd /" za prelazak u korijenski direktorij

Korak 3: Upišite naredbu da provjerite radi li zadana postavka

cmd / c C: \\ Wget \\ wget.exe -PC: - potvrda bez provjere http://demo.guru99.com/selenium/msgr11us.exe

Čini se da postoji problem s upisivanjem u C pogon.

Korak 4: Morate otkloniti pogreške wgeta u naredbenom retku prije nego što izvršite kôd pomoću Selenium Webdriver. Te će se pogreške i dalje pojavljivati ​​u Eclipseu, a poruke o pogreškama neće biti informativne. Najbolje je da prvo pokrenete wget pomoću naredbenog retka. Ako radi u naredbenom retku, zasigurno će raditi u Eclipseu.

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

cmd / c C: \\ Wget \\ wget.exe -PD: - potvrda bez provjere http://demo.guru99.com/selenium/msgr11us.exe

Messenger je uspješno preuzet.

Prije nego što nastavite, 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 nazvanog Yahoo Messenger. Naš osnovni URL bit će http://demo.guru99.com/test/yahoo.html.

Korak 1

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

Korak 2

Koristite getAttribute () da biste dobili vrijednost "href" veze za preuzimanje i spremili je kao varijablu String. U ovom smo slučaju varijablu nazvali "sourceLocation".

3. korak

Postavite sintaksu za wget pomoću sljedeće naredbe.

4. korak

Pokrenite postupak preuzimanja pozivom wgeta iz našeg WebDriver koda.

Da sumiramo sve, vaš WebDriver kôd mogao bi izgledati poput prikazanog u nastavku.

paket noviprojekt;import java.io.IOException;uvoz org.openqa.selenium. *;uvoz org.openqa.selenium.firefox.FirefoxDriver;javna klasa PG8 {javna statička void glavna (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");String baseUrl = "http://demo.guru99.com/test/yahoo.html";Upravljački program za WebDriver = novi FirefoxDriver ();driver.get (baseUrl);WebElement downloadButton = driver.findElement (Autor.id ("messenger-download"));Niz sourceLocation = downloadButton.getAttribute ("href");Niz wget_command = "cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-certificate" + sourceLocation;probaj {Proces exec = Runtime.getRuntime (). Exec (wget_command);int exitVal = exec.waitFor ();System.out.println ("Vrijednost izlaza: + izlazVal);} catch (InterruptedException | IOException ex) {System.out.println (ex.toString ());}driver.close ();}}

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

Sažetak

  • Prijenos datoteka u WebDriver vrši se jednostavnom uporabom metode sendKeys () u polju za unos datoteke za odabir datoteke da biste unijeli put do datoteke koju želite prenijeti.
  • WebDriver ne može samostalno automatizirati preuzimanje datoteka.
  • Najlakši način za preuzimanje datoteka pomoću WebDrivera je korištenje Wgeta.