Kako naložiti & Prenesite datoteko s programom Selenium Webdriver

Kazalo:

Anonim

V tej vadnici bomo izvedeli, kako ravnati z nalaganjem in prenosom datotek.

Nalaganje datotek

V tem razdelku bomo kot testno aplikacijo uporabili http://demo.guru99.com/test/upload/. Spletno mesto omogoča vsakemu obiskovalcu, da naloži datoteke, ne da bi se moral od njih prijaviti.

Nalaganje datotek v WebDriver se izvede s preprosto uporabo metode sendKeys () v vnosnem polju za izbiro datoteke, da vnesete pot do datoteke, ki jo želite naložiti.

Ravnajte s pojavnim oknom za nalaganje datotek v programu Selenium Webdriver
obravnava pojavno okno za nalaganje datotek v selenium webdriver

Recimo, da želimo naložiti datoteko "C: \ newhtml.html". Naša koda WebDriver mora biti takšna, kot je prikazana spodaj.

paket newproject;uvoz org.openqa.selenium. *;uvoz org.openqa.selenium.firefox.FirefoxDriver;javni razred PG9 {public static void main (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");String baseUrl = "http://demo.guru99.com/test/upload/";Gonilnik WebDriver = novi FirefoxDriver ();driver.get (baseUrl);WebElement uploadElement = driver.findElement (By.id ("uploadfile_0"));// vnesemo pot do datoteke v vnosno polje za izbiro datotekeuploadElement.sendKeys ("C: \\ newhtml.html");// potrdite polje "Sprejemam pogoje storitve"driver.findElement (By.id ("pogoji")). click ();// kliknite gumb "UploadFile"driver.findElement (By.name ("send")). click ();}}

Po zagonu tega skripta bi morali datoteko uspešno naložiti in dobiti sporočilo, podobno temu.

Ne pozabite upoštevati dveh stvari pri nalaganju datotek v WebDriver

  1. Ni treba simulirati klika gumba "Prebrskaj". WebDriver samodejno vnese pot do datoteke v besedilno polje za izbiro datoteke elementa
  2. Pri nastavljanju poti do datoteke v vašem Java IDE uporabite ustrezni ubežni znak za poševnico nazaj.

Nalaganje datotek

WebDriver nima možnosti dostopa do pogovornih oken za prenos, ki jih prikažejo brskalniki, ko kliknete povezavo ali gumb za prenos. Vendar lahko ta pogovorna okna zaobidemo z ločenim programom, imenovanim "wget".

Kaj je Wget?

Wget je majhen in za uporabo preprost program ukazne vrstice, ki se uporablja za avtomatizacijo prenosov . V bistvu bomo do Wgeta dostopali iz našega skripta WebDriver, da bomo izvedli postopek prenosa.

Nastavitev Wgeta

1. korak: Na svojem disku C ustvarite novo mapo in jo poimenujte kot "Wget".

Prenesite wget.exe od tukaj in ga postavite v mapo Wget, ki ste jo ustvarili v zgornjem koraku.

2. korak: Odprite Run s pritiskom na tipko Windows + "R"; vnesite "cmd in kliknite v redu

Vnesite ukaz "cd /", da se premaknete v korenski imenik

3. korak: Vnesite ukaz, da preverite, ali določena nastavitev deluje

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

Zdi se, da je prišlo do težave s pisanjem v pogon C.

Korak 4: Preden zaženete kodo s programom Selenium Webdriver, morate v ukazni vrstici odpraviti napake wget-a. Te napake bodo v programu Eclipse še vedno prisotne in sporočila o napakah ne bodo tako informativna. Najbolje je, da najprej zaženete wget z uporabo ukazne vrstice. Če deluje v ukazni vrstici, bo zagotovo deloval v Eclipseu.

V našem primeru, kot je prikazano v koraku 3, prihaja do težave pri zapisovanju v pogon C. Spremenimo mesto prenosa na pogon D in preverimo rezultate.

cmd / c C: \\ Wget \\ wget.exe -PD: - potrdilo ni preverjeno http://demo.guru99.com/selenium/msgr11us.exe

Messenger je bil uspešno prenesen.

Pred nadaljevanjem ne pozabite izbrisati prenesene datoteke

Uporaba WebDriverja in Wgeta

V naslednjem primeru bomo s programom WebDriver in wget prenesli priljubljeno programsko opremo za klepet, imenovano Yahoo Messenger. Naš osnovni URL bo http://demo.guru99.com/test/yahoo.html.

Korak 1

Uvozite paket "java.io.IOException", ker bomo kasneje v 4. koraku morali ujeti IOException.

2. korak

Uporabite getAttribute (), da dobite vrednost "href" povezave za prenos in jo shranite kot spremenljivko String. V tem primeru smo spremenljivko poimenovali kot "sourceLocation".

3. korak

Sintakso za wget nastavite z naslednjim ukazom.

4. korak

Zaženite postopek prenosa tako, da pokličete wget iz naše kode WebDriver.

Če povzamemo vse, bi lahko bila koda WebDriver videti kot spodaj prikazana.

paket newproject;import java.io.IOException;uvoz org.openqa.selenium. *;uvoz org.openqa.selenium.firefox.FirefoxDriver;javni razred PG8 {public static void main (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");String baseUrl = "http://demo.guru99.com/test/yahoo.html";Gonilnik WebDriver = novi FirefoxDriver ();driver.get (baseUrl);WebElement downloadButton = driver.findElement (avtor:.id ("messenger-download"));Niz sourceLocation = downloadButton.getAttribute ("href");Niz wget_command = "cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-certificate" + sourceLocation;poskusite {Proces exec = Runtime.getRuntime (). Exec (wget_command);int exitVal = exec.waitFor ();System.out.println ("Izhodna vrednost: + izhodna vrednost);} catch (InterruptedException | IOException ex) {System.out.println (ex.toString ());}driver.close ();}}

Po izvedbi te kode preverite pogon D in preverite, ali je bil tam nameščen Yahoo Messenger.

Povzetek

  • Nalaganje datotek v WebDriver se izvede s preprosto uporabo metode sendKeys () v vnosnem polju za izbiro datoteke, da vnesete pot do datoteke, ki jo želite naložiti.
  • WebDriver ne more sam avtomatizirati prenosa datotek.
  • Najlažji način za prenos datotek s programom WebDriver je uporaba Wgeta.