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