V tomto tutoriále sa naučíme Ako postupovať pri nahrávaní a sťahovaní súborov.
Načítavajú sa súbory
V tejto časti použijeme ako testovaciu aplikáciu stránku http://demo.guru99.com/test/upload/. Táto stránka ľahko umožňuje každému návštevníkovi nahrávať súbory bez nutnosti registrácie.
Nahrávanie súborov na server WebDriver sa vykonáva jednoducho pomocou metódy sendKeys () do vstupného poľa na výber súboru a zadajte cestu k súboru, ktorý sa má nahrať.

Povedzme, že chceme nahrať súbor „C: \ newhtml.html“. Náš kód WebDriver by mal byť rovnaký, ako je uvedený nižšie.
balíček nový projekt;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;verejná trieda PG9 {public static void main (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Reťazec baseUrl = "http://demo.guru99.com/test/upload/";Ovládač WebDriver = nový FirefoxDriver ();driver.get (baseUrl);WebElement uploadElement = driver.findElement (By.id ("uploadfile_0"));// zadajte cestu k súboru do vstupného poľa pre výber súboruuploadElement.sendKeys ("C: \\ newhtml.html");// začiarknite políčko „Prijímam podmienky služby“driver.findElement (By.id ("výrazy")). click ();// kliknite na tlačidlo „NahraťSúbor“driver.findElement (By.name ("send")). click ();}}
Po spustení tohto skriptu by ste mali byť schopní úspešne nahrať súbor a mala by sa vám zobraziť podobná správa.
Pri nahrávaní súborov na serveri WebDriver nezabudnite na dve nasledujúce veci
- Nie je potrebné simulovať klikanie na tlačidlo „Prehľadávať“. WebDriver automaticky zadá cestu k súboru do textového poľa pre výber súboru prvku
- Pri nastavovaní cesty k súboru vo vašom Java IDE použite správny spätný znak pre spätné lomítko.
Sťahovanie súborov
WebDriver nie je schopný získať prístup k dialógovým oknám sťahovania, ktoré zobrazujú prehľadávače, keď kliknete na odkaz alebo tlačidlo na stiahnutie. Tieto dialógové okná však môžeme obísť pomocou samostatného programu s názvom „wget“.
Čo je to Wget?
Wget je malý a ľahko použiteľný program príkazového riadku používaný na automatizáciu sťahovania . V zásade pristúpime k Wgetu z nášho skriptu WebDriver, aby sme vykonali proces sťahovania.
Nastavuje sa Wget
Krok 1: Na disku C vytvorte nový priečinok a pomenujte ho ako „Wget“.
Stiahnite si súbor wget.exe odtiaľto a umiestnite ho do priečinka Wget, ktorý ste vytvorili pomocou vyššie uvedeného kroku.
Krok 2: Otvorte príkaz Spustiť stlačením klávesu Windows + „R“; napíšte „cmd a kliknite na ok
Zadaním príkazu „cd /“ sa presuniete do koreňového adresára
Krok 3: Zadaním príkazu skontrolujte, či dané nastavenie funguje
cmd / c C: \\ Wget \\ wget.exe -PC: --no-check-certificate http://demo.guru99.com/selenium/msgr11us.exe
Zdá sa, že došlo k problému s zápisom na jednotku C.
Krok 4: Pred vykonaním kódu pomocou selenového webového ovládača musíte ladiť chyby wget v príkazovom riadku. Tieto chyby budú v Eclipse pretrvávať a chybové správy nebudú také informatívne. Najlepšie je najskôr pracovať pomocou príkazového riadku. Ak to funguje v príkazovom riadku, bude to určite fungovať aj v Eclipse.
V našom príklade, ako je uvedené v kroku 3, je problém s zápisom na jednotku C. Zmeňme umiestnenie sťahovania na disk D a skontrolujte výsledky.
cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-certificate http://demo.guru99.com/selenium/msgr11us.exe
Messenger bol úspešne stiahnutý.
Pred pokračovaním nezabudnite stiahnutý súbor odstrániť
Používanie WebDriver a Wget
V nasledujúcom príklade použijeme program WebDriver a wget na stiahnutie populárneho chatovacieho softvéru s názvom Yahoo Messenger. Naša základná adresa URL je http://demo.guru99.com/test/yahoo.html.
Krok 1
Importujte balík „java.io.IOException“, pretože neskôr v kroku 4 budeme musieť zachytiť IOException.
Krok 2
Použite getAttribute () na získanie hodnoty „href“ odkazu na stiahnutie a uložte ho ako premennú typu String. V tomto prípade sme premennú pomenovali ako „sourceLocation“.
Krok 3
Pomocou nasledujúceho príkazu nastavte syntax pre wget.
Krok 4
Spustite proces sťahovania volaním wget z nášho kódu WebDriver.
Ak to zhrnieme, váš kód WebDriver môže vyzerať ako ten, ktorý je uvedený nižšie.
balíček nový projekt;import java.io.IOException;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;verejná trieda PG8 {public static void main (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Reťazec baseUrl = "http://demo.guru99.com/test/yahoo.html";Ovládač WebDriver = nový FirefoxDriver ();driver.get (baseUrl);WebElement downloadButton = driver.findElement (od.id („messenger-download“));Reťazec sourceLocation = downloadButton.getAttribute ("href");Reťazec wget_command = "cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-certificate" + sourceLocation;skúsiť {Proces exec = Runtime.getRuntime (). Exec (wget_command);int exitVal = exec.waitFor ();System.out.println ("Výstupná hodnota: + exitVal);} chyta (InterruptedException | IOException ex) {System.out.println (ex.toString ());}driver.close ();}}
Po vykonaní tohto kódu skontrolujte disk D a skontrolujte, či sa tam úspešne nainštaloval inštalátor Yahoo Messenger.
Zhrnutie
- Nahrávanie súborov na server WebDriver sa vykonáva jednoducho pomocou metódy sendKeys () do vstupného poľa na výber súboru a zadajte cestu k súboru, ktorý sa má nahrať.
- WebDriver nemôže sám automatizovať sťahovanie súborov.
- Najjednoduchší spôsob sťahovania súborov pomocou WebDriveru je použitie Wget.