I denne opplæringen lærer vi hvordan vi skal håndtere filopplastinger og nedlastinger.
Laster opp filer
For denne delen vil vi bruke http://demo.guru99.com/test/upload/ som vår testapplikasjon. Dette nettstedet lar enkelt besøkende laste opp filer uten å kreve at de registrerer seg.
Opplasting av filer i WebDriver gjøres ved å bruke sendKeys () -metoden i inntastingsfeltet for filvalg for å angi banen til filen som skal lastes opp.

La oss si at vi ønsker å laste opp filen "C: \ newhtml.html". WebDriver-koden vår skal være som den som vises nedenfor.
pakke newproject;importer org.openqa.selenium. *;importer 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"));// skriv inn filstien til inntastingsfeltet for filvalguploadElement.sendKeys ("C: \\ newhtml.html");// merker av for "Jeg godtar vilkårene for bruk"driver.findElement (By.id ("vilkår")). klikk ();// klikk på "UploadFile" -knappendriver.findElement (By.name ("send")). klikk ();}}
Etter at du har kjørt dette skriptet, bør du kunne laste opp filen med hell, og du bør få en melding som ligner på denne.
Husk å følge to ting når du laster opp filer i WebDriver
- Det er ikke nødvendig å simulere å klikke på "Bla gjennom" -knappen. WebDriver legger automatisk inn filstien til tekstboksen for filvalg i elementet
- Når du setter filstien i Java IDE, bruker du riktig escape-tegn for tilbakeslag.
Laste ned filer
WebDriver har ingen mulighet til å få tilgang til nedlastingsdialogboksene som presenteres av nettlesere når du klikker på en nedlastingskobling eller -knapp. Vi kan imidlertid omgå disse dialogboksene ved hjelp av et eget program kalt "wget".
Hva er Wget?
Wget er et lite og brukervennlig kommandolinjeprogram som brukes til å automatisere nedlastinger . I utgangspunktet vil vi få tilgang til Wget fra WebDriver-skriptet vårt for å utføre nedlastingsprosessen.
Sette opp Wget
Trinn 1: Opprett en ny mappe i C-stasjonen din og gi den navnet "Wget".
Last ned wget.exe herfra og plasser den i Wget-mappen du opprettet fra trinnet ovenfor.
Trinn 2: Åpne Kjør ved å trykke på Windows-tasten + "R"; skriv inn "cmd og klikk ok
Skriv inn kommandoen "cd /" for å flytte til rotkatalogen
Trinn 3: Skriv inn kommandoen for å sjekke om det gitte oppsettet fungerer
cmd / c C: \\ Wget \\ wget.exe -PC: - ingen sjekk-sertifikat http://demo.guru99.com/selenium/msgr11us.exe
Det ser ut til å være et problem å skrive inn i C-stasjonen.
Trinn 4: Du må feilsøke wget-feilene på kommandolinjen før du utfører koden ved hjelp av Selenium Webdriver. Disse feilene vedvarer i formørkelse, og feilmeldingene vil ikke være like informative. Best å først få wget til å fungere ved hjelp av kommandolinjen. Hvis det fungerer på kommandolinjen, vil det definitivt fungere i formørkelse.
I vårt eksempel, som vist i trinn 3, er det et problem å skrive inn i C-stasjonen. La oss endre nedlastingsplasseringen til D-stasjon og sjekke resultatene.
cmd / c C: \\ Wget \\ wget.exe -PD: - ingen sjekk-sertifikat http://demo.guru99.com/selenium/msgr11us.exe
Messenger ble lastet ned.
Ikke glem å slette den nedlastede filen før du går videre
Bruker WebDriver og Wget
I det følgende eksemplet vil vi bruke WebDriver og wget til å laste ned en populær chat-programvare kalt Yahoo Messenger. Vår grunnleggende URL skal være http://demo.guru99.com/test/yahoo.html.
Trinn 1
Importer pakken "java.io.IOException" fordi vi må fange en IOException senere i trinn 4.
Steg 2
Bruk getAttribute () for å få "href" -verdien til nedlastingskoblingen og lagre den som en strengvariabel. I dette tilfellet kalte vi variabelen som "sourceLocation".
Trinn 3
Sett opp syntaksen for wget ved hjelp av følgende kommando.
Trinn 4
Start nedlastingsprosessen ved å ringe wget fra vår WebDriver-kode.
For å oppsummere alt, kan WebDriver-koden se ut som den som er vist nedenfor.
pakke newproject;importere java.io.IOException;importer org.openqa.selenium. *;importer 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 (av.id ("messenger-download"));String sourceLocation = downloadButton.getAttribute ("href");String wget_command = "cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-certificate" + sourceLocation;prøv {Prosess exec = Runtime.getRuntime (). Exec (wget_command);int exitVal = exec.waitFor ();System.out.println ("Utgangsverdi: + exitVal);} fangst (InterruptedException | IOException ex) {System.out.println (ex.toString ());}driver.close ();}}
Etter at du har kjørt denne koden, sjekk D-stasjonen din og bekreft at installasjonsprogrammet for Yahoo Messenger ble lastet ned der.
Sammendrag
- Opplasting av filer i WebDriver gjøres ved å bruke sendKeys () -metoden i inntastingsfeltet for filvalg for å angi banen til filen som skal lastes opp.
- WebDriver kan ikke automatisere nedlasting av filer alene.
- Den enkleste måten å laste ned filer ved hjelp av WebDriver er å bruke Wget.