Hvordan laste opp & Last ned en fil ved hjelp av Selenium Webdriver

Innholdsfortegnelse:

Anonim

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.

Håndter filopplasting popup i Selenium Webdriver
håndtere filopplasting popup i selen webdriver

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

  1. Det er ikke nødvendig å simulere å klikke på "Bla gjennom" -knappen. WebDriver legger automatisk inn filstien til tekstboksen for filvalg i elementet
  2. 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.