Ako nahrávať & Stiahnite si súbor pomocou selénového webového ovládača

Obsah:

Anonim

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ť.

Spracujte vyskakovacie okno s nahrávaním súborov v selenovom webovom ovládači
spracovať vyskakovacie okno so súborom v selenovom webdriveri -

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

  1. 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
  2. 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.