I den här handledningen lär vi oss hur man hanterar filöverföringar och nedladdningar.
Ladda upp filer
För det här avsnittet använder vi http://demo.guru99.com/test/upload/ som vår testapplikation. Denna webbplats gör det enkelt för alla besökare att ladda upp filer utan att de behöver registrera sig.
Att ladda upp filer i WebDriver görs genom att använda metoden sendKeys () i inmatningsfältet för filval för att ange sökvägen till filen som ska laddas upp.

Låt oss säga att vi vill ladda upp filen "C: \ newhtml.html". Vår WebDriver-kod ska vara som den som visas nedan.
paketet newproject;importera org.openqa.selenium. *;importera org.openqa.selenium.firefox.FirefoxDriver;allmän klass PG9 {public static void main (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");String baseUrl = "http://demo.guru99.com/test/upload/";WebDriver-drivrutin = ny FirefoxDriver ();driver.get (baseUrl);WebElement uploadElement = driver.findElement (By.id ("uploadfile_0"));// ange filvägen till inmatningsfältet för filvaluploadElement.sendKeys ("C: \\ newhtml.html");// kryssa i kryssrutan "Jag accepterar användarvillkoren"driver.findElement (By.id ("villkor")). klicka ();// klicka på knappen "UploadFile"driver.findElement (By.name ("send")). klicka ();}}
Efter att ha kört detta skript bör du kunna ladda upp filen framgångsrikt och du bör få ett meddelande som liknar det här.
Kom ihåg att följa två saker när du laddar upp filer i WebDriver
- Det finns inget behov av att simulera att klicka på knappen "Bläddra". WebDriver anger automatiskt filvägen till textrutan för filval i elementet
- När du ställer in filsökvägen i din Java IDE, använd rätt escape-tecken för back-snedstrecket.
Hämtar filer
WebDriver har ingen möjlighet att komma åt dialogrutorna Nedladdning som presenteras av webbläsare när du klickar på en nedladdningslänk eller -knapp. Vi kan dock kringgå dessa dialogrutor med ett separat program som heter "wget".
Vad är Wget?
Wget är ett litet och lättanvänt kommandoradsprogram som används för att automatisera nedladdningar . I grund och botten kommer vi att få tillgång till Wget från vårt WebDriver-skript för att utföra nedladdningsprocessen.
Ställa in Wget
Steg 1: Skapa en ny mapp i din C Drive och ge den namnet "Wget".
Ladda ner wget.exe härifrån och placera den i Wget-mappen du skapade från steget ovan.
Steg 2: Öppna Kör genom att trycka på Windows-tangenten + "R"; skriv "cmd och klicka ok
Skriv in kommandot "cd /" för att flytta till rotkatalogen
Steg 3: Skriv in kommandot för att kontrollera om den givna installationen fungerar
cmd / c C: \\ Wget \\ wget.exe -PC: - inget check-certifikat http://demo.guru99.com/selenium/msgr11us.exe
Det verkar finnas ett problem med att skriva till C-enheten.
Steg 4: Du måste felsöka wget-felen i kommandoraden innan du kör koden med Selenium Webdriver. Dessa fel kvarstår i Eclipse och felmeddelandena kommer inte att vara lika informativa. Bäst att först få wget att fungera med kommandoraden. Om det fungerar på kommandoraden kommer det definitivt att fungera i Eclipse.
I vårt exempel, som visas i steg 3, finns det ett problem att skriva till C-enheten. Låt oss ändra nedladdningsplatsen till D-enhet och kontrollera resultaten.
cmd / c C: \\ Wget \\ wget.exe -PD: - inget check-certifikat http://demo.guru99.com/selenium/msgr11us.exe
Messenger laddades ner.
Glöm inte att ta bort den nedladdade filen innan du går vidare
Använda WebDriver och Wget
I följande exempel använder vi WebDriver och wget för att ladda ner ett populärt chattprogram som heter Yahoo Messenger. Vår grundadress ska vara http://demo.guru99.com/test/yahoo.html.
Steg 1
Importera paketet "java.io.IOException" eftersom vi måste fånga en IOException senare i steg 4.
Steg 2
Använd getAttribute () för att hämta "href" -värdet för nedladdningslänken och spara det som en strängvariabel. I det här fallet namngav vi variabeln som "sourceLocation".
Steg 3
Ställ in syntaxen för wget med följande kommando.
Steg 4
Starta nedladdningsprocessen genom att ringa wget från vår WebDriver-kod.
För att sammanfatta allt kan din WebDriver-kod se ut som den som visas nedan.
paketet newproject;importera java.io.IOException;importera org.openqa.selenium. *;importera org.openqa.selenium.firefox.FirefoxDriver;allmän klass PG8 {public static void main (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");SträngbasUrl = "http://demo.guru99.com/test/yahoo.html";WebDriver-drivrutin = ny FirefoxDriver ();driver.get (baseUrl);WebElement downloadButton = driver.findElement (av.id ("nedladdning av budbärare"));String sourceLocation = downloadButton.getAttribute ("href");Sträng wget_command = "cmd / c C: \\ Wget \\ wget.exe -PD: - inget check-certifikat" + sourceLocation;Prova {Process exec = Runtime.getRuntime (). Exec (wget_command);int exitVal = exec.waitFor ();System.out.println ("Utgångsvärde: + exitVal);} fånga (InterruptedException | IOException ex) {System.out.println (ex.toString ());}driver.close ();}}
Efter att ha kört den här koden, kontrollera din D-enhet och kontrollera att Yahoo Messenger-installationsprogrammet har laddats ner där.
Sammanfattning
- Att ladda upp filer i WebDriver görs genom att använda metoden sendKeys () i inmatningsfältet för filval för att ange sökvägen till filen som ska laddas upp.
- WebDriver kan inte automatiskt ladda ner filer på egen hand.
- Det enklaste sättet att ladda ner filer med WebDriver är att använda Wget.