Sådan uploades & Download en fil ved hjælp af Selenium Webdriver

Indholdsfortegnelse:

Anonim

I denne vejledning lærer vi, hvordan vi håndterer filoverførsler og downloads.

Uploader filer

I dette afsnit bruger vi http://demo.guru99.com/test/upload/ som vores testapplikation. Dette websted tillader let enhver besøgende at uploade filer uden at kræve, at de tilmelder sig.

Upload af filer i WebDriver sker ved blot at bruge metoden sendKeys () i inputfeltet til filvalg for at indtaste stien til filen, der skal uploades.

Håndter File upload popup i Selenium Webdriver
håndter pop-up-popup-fil i selen webdriver

Lad os sige, at vi ønsker at uploade filen "C: \ newhtml.html". Vores WebDriver-kode skal være som den vist nedenfor.

pakke nyprojekt;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;offentlig klasse PG9 {public static void main (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");String baseUrl = "http://demo.guru99.com/test/upload/";WebDriver-driver = ny FirefoxDriver ();driver.get (baseUrl);WebElement uploadElement = driver.findElement (By.id ("uploadfile_0"));// indtast filstien til indtastningsfeltet til filvalguploadElement.sendKeys ("C: \\ newhtml.html");// marker afkrydsningsfeltet "Jeg accepterer servicevilkårene"driver.findElement (By.id ("vilkår")). klik ();// klik på knappen "UploadFile"driver.findElement (By.name ("send")). klik ();}}

Efter at have kørt dette script, skal du være i stand til at uploade filen med succes, og du skal få en lignende besked.

Husk at følge to ting, når du uploader filer i WebDriver

  1. Det er ikke nødvendigt at simulere at klikke på knappen "Gennemse". WebDriver indtaster automatisk filstien til tekstfeltet til valg af fil i elementet
  2. Når du indstiller filstien i din Java IDE, skal du bruge det rigtige escape-tegn til back-skråstreg.

Download af filer

WebDriver har ingen mulighed for at få adgang til dialogbokse Download, der præsenteres af browsere, når du klikker på et downloadlink eller -knap. Vi kan dog omgå disse dialogbokse ved hjælp af et separat program kaldet "wget".

Hvad er Wget?

Wget er et lille og brugervenligt kommandolinjeprogram, der bruges til at automatisere downloads . Dybest set får vi adgang til Wget fra vores WebDriver-script for at udføre downloadprocessen.

Opsætning af Wget

Trin 1: Opret en ny mappe i dit C-drev, og navngiv den som "Wget".

Download wget.exe herfra, og placer den i Wget-mappen, du oprettede fra ovenstående trin.

Trin 2: Åbn Kør ved at trykke på Windows-tasten + "R"; skriv "cmd & klik ok

Indtast kommandoen "cd /" for at flytte til rodmappen

Trin 3: Indtast kommandoen for at kontrollere, om den givne opsætning fungerer

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

Der ser ud til at være et problem, der skriver til C-drev.

Trin 4: Du skal fejle wget-fejlene på kommandolinjen, før du udfører koden ved hjælp af Selenium Webdriver. Disse fejl fortsætter i Eclipse, og fejlmeddelelserne er ikke så informative. Bedst at først få wget til at arbejde ved hjælp af kommandolinjen. Hvis det fungerer i kommandolinjen, fungerer det helt sikkert i formørkelse.

I vores eksempel, som vist i trin 3, er der et problem med at skrive til C-drev. Lad os ændre downloadplaceringen til D-drev og kontrollere resultaterne.

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

Messenger blev downloadet.

Glem ikke at slette den downloadede fil, før du går videre

Brug af WebDriver og Wget

I det følgende eksempel bruger vi WebDriver og wget til at downloade en populær chat-software kaldet Yahoo Messenger. Vores basis-URL skal være http://demo.guru99.com/test/yahoo.html.

Trin 1

Importer pakken "java.io.IOException", fordi vi bliver nødt til at fange en IOException senere i trin 4.

Trin 2

Brug getAttribute () til at hente "href" -værdien af ​​downloadlinket og gemme det som en strengvariabel. I dette tilfælde navngav vi variablen som "sourceLocation".

Trin 3

Opsæt syntaksen for wget ved hjælp af følgende kommando.

Trin 4

Start downloadprocessen ved at ringe til wget fra vores WebDriver-kode.

For at opsummere det hele kan din WebDriver-kode se ud som den, der er vist nedenfor.

pakke nyprojekt;importere java.io.IOException;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;offentlig klasse PG8 {public static void main (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Streng baseUrl = "http://demo.guru99.com/test/yahoo.html";WebDriver-driver = ny FirefoxDriver ();driver.get (baseUrl);WebElement downloadButton = driver.findElement (af.id ("messenger-download"));String sourceLocation = downloadButton.getAttribute ("href");Streng wget_command = "cmd / c C: \\ Wget \\ wget.exe -PD: - intet check-certifikat" + sourceLocation;prøve {Process exec = Runtime.getRuntime (). Exec (wget_command);int exitVal = exec.waitFor ();System.out.println ("Udgangsværdi: + exitVal);} fangst (InterruptedException | IOException ex) {System.out.println (ex.toString ());}driver.close ();}}

Efter at have udført denne kode, skal du kontrollere dit D-drev og kontrollere, at Yahoo Messenger-installationsprogrammet blev downloadet der.

Resumé

  • Upload af filer i WebDriver sker ved blot at bruge metoden sendKeys () i inputfeltet til filvalg for at indtaste stien til filen, der skal uploades.
  • WebDriver kan ikke automatisere download af filer alene.
  • Den nemmeste måde at downloade filer ved hjælp af WebDriver er at bruge Wget.