Jak nahrávat & Stáhněte si soubor pomocí selenového webdriveru

Obsah:

Anonim

V tomto tutoriálu se naučíme, jak zacházet s nahráváním a stahováním souborů.

Nahrávání souborů

V této části budeme jako naši testovací aplikaci používat http://demo.guru99.com/test/upload/. Tento web snadno umožňuje jakémukoli návštěvníkovi nahrávat soubory bez nutnosti registrace.

Nahrávání souborů do WebDriveru se provádí jednoduše pomocí metody sendKeys () do vstupního pole pro výběr souboru a zadejte cestu k souboru, který se má nahrát.

Zpracování vyskakovacího okna pro nahrávání souborů v Selenium Webdriver
zpracovat vyskakovací okno se souborem v selenovém webdriveru

Řekněme, že chceme nahrát soubor „C: \ newhtml.html“. Náš kód WebDriver by měl vypadat jako ten, který je uveden níže.

balíček newproject;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;veřejná třída PG9 {public static void main (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Řetězec baseUrl = "http://demo.guru99.com/test/upload/";Ovladač WebDriver = nový FirefoxDriver ();driver.get (baseUrl);WebElement uploadElement = driver.findElement (By.id ("uploadfile_0"));// zadejte cestu k souboru do vstupního pole pro výběr souboruuploadElement.sendKeys ("C: \\ newhtml.html");// zaškrtněte políčko „Přijímám podmínky služby“driver.findElement (By.id ("terms")). click ();// klikněte na tlačítko „NahrátSoubor“driver.findElement (By.name ("send")). click ();}}

Po spuštění tohoto skriptu byste měli být schopni soubor úspěšně nahrát a měla by se vám zobrazit podobná zpráva.

Při nahrávání souborů na WebDriver nezapomeňte sledovat dvě věci

  1. Není třeba simulovat kliknutí na tlačítko „Procházet“. WebDriver automaticky zadá cestu k souboru do textového pole pro výběr souboru prvku
  2. Při nastavování cesty k souboru v prostředí Java IDE použijte správný znak escape pro zpětné lomítko.

Stahování souborů

WebDriver nemá schopnost přistupovat k dialogovým oknům Stahování, která se zobrazují v prohlížečích, když kliknete na odkaz nebo tlačítko pro stažení. Můžeme však tato dialogová okna obejít pomocí samostatného programu s názvem „wget“.

Co je to Wget?

Wget je malý a snadno použitelný program příkazového řádku používaný k automatizaci stahování . V zásadě přistoupíme k Wget z našeho skriptu WebDriver, abychom provedli proces stahování.

Nastavení Wget

Krok 1: Na disku C vytvořte novou složku a pojmenujte ji jako „Wget“.

Stáhněte si soubor wget.exe odtud a umístěte jej do složky Wget, kterou jste vytvořili v předchozím kroku.

Krok 2: Otevřete Spustit stisknutím klávesy Windows + "R"; napište „cmd a klikněte na ok

Zadejte příkaz „cd /“ a přesuňte se do kořenového adresáře

Krok 3: Zadejte příkaz a zkontrolujte, zda dané nastavení funguje

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

Zdá se, že došlo k problému se zápisem na jednotku C.

Krok 4: Před spuštěním kódu pomocí selenového webového ovladače musíte ladit chyby wget v příkazovém řádku. Tyto chyby v Eclipse přetrvávají a chybové zprávy nebudou tak informativní. Nejlépe je nejprve začít pracovat pomocí příkazového řádku. Pokud to funguje v příkazovém řádku, určitě to bude fungovat v Eclipse.

V našem příkladu, jak je ukázáno v kroku 3, je problém se zápisem na jednotku C. Pojďme změnit umístění stahování na disk D a zkontrolovat výsledky.

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

Messenger byl úspěšně stažen.

Než budete pokračovat, nezapomeňte stažený soubor smazat

Používání WebDriver a Wget

V následujícím příkladu použijeme WebDriver a wget ke stažení populárního chatovacího softwaru s názvem Yahoo Messenger. Naše základní adresa URL bude http://demo.guru99.com/test/yahoo.html.

Krok 1

Importujte balíček „java.io.IOException“, protože později v kroku 4 budeme muset zachytit IOException.

Krok 2

Použijte getAttribute () k získání hodnoty „href“ odkazu ke stažení a uložení jako řetězcové proměnné. V tomto případě jsme proměnnou pojmenovali „sourceLocation“.

Krok 3

Nastavte syntaxi pro wget pomocí následujícího příkazu.

Krok 4

Zahajte proces stahování voláním wget z našeho kódu WebDriver.

Abychom to shrnuli, váš kód WebDriver může vypadat jako ten, který je uveden níže.

balíček newproject;import java.io.IOException;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;veřejná třída PG8 {public static void main (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Řetězec baseUrl = "http://demo.guru99.com/test/yahoo.html";Ovladač WebDriver = nový FirefoxDriver ();driver.get (baseUrl);WebElement downloadButton = driver.findElement (autor.id ("messenger-download"));Řetězec sourceLocation = downloadButton.getAttribute ("href");Řetězec wget_command = "cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-certificate" + sourceLocation;Snaž se {Zpracovat exec = Runtime.getRuntime (). Exec (wget_command);int exitVal = exec.waitFor ();System.out.println ("Výstupní hodnota: + exitVal);} catch (InterruptedException | IOException ex) {System.out.println (např. ToString ());}driver.close ();}}

Po provedení tohoto kódu zkontrolujte svou jednotku D a ověřte, zda tam byl úspěšně stažen instalační program Yahoo Messenger.

souhrn

  • Nahrávání souborů do WebDriveru se provádí jednoduše pomocí metody sendKeys () do vstupního pole pro výběr souboru a zadejte cestu k souboru, který se má nahrát.
  • WebDriver nemůže sám automatizovat stahování souborů.
  • Nejjednodušší způsob stahování souborů pomocí WebDriveru je použití Wget.