În acest tutorial, vom învăța cum să faceți față încărcărilor și descărcărilor de fișiere.
Încărcarea fișierelor
Pentru această secțiune, vom folosi http://demo.guru99.com/test/upload/ ca aplicație de testare. Acest site permite cu ușurință oricărui vizitator să încarce fișiere fără a le cere să se înscrie.
Încărcarea fișierelor în WebDriver se face prin simpla utilizare a metodei sendKeys () în câmpul de intrare selectare fișier pentru a introduce calea către fișierul care urmează să fie încărcat.
gestionați fereastra pop-up de încărcare în seleniu webdriverSă presupunem că dorim să încărcăm fișierul „C: \ newhtml.html”. Codul nostru WebDriver ar trebui să fie ca cel prezentat mai jos.
pachet proiect nou;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;clasa publica PG9 {public static main main (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");String baseUrl = "http://demo.guru99.com/test/upload/";Driver WebDriver = nou FirefoxDriver ();driver.get (baseUrl);WebElement uploadElement = driver.findElement (By.id ("uploadfile_0"));// introduceți calea fișierului în câmpul de introducere a selecției de fișiereuploadElement.sendKeys ("C: \\ newhtml.html");// bifați caseta de selectare „Accept termenii și condițiile”driver.findElement (By.id ("termeni")). faceți clic pe ();// faceți clic pe butonul „UploadFile”driver.findElement (By.name ("send")). click ();}}
După rularea acestui script, ar trebui să puteți încărca fișierul cu succes și ar trebui să primiți un mesaj similar cu acesta.
Nu uitați să urmați două lucruri atunci când încărcați fișiere în WebDriver
- Nu este nevoie să simulați clicul butonului „Răsfoiți”. WebDriver introduce automat calea fișierului în caseta de selectare a fișierului din elementul
- Când setați calea fișierului în IDE-ul dvs. Java, utilizați caracterul de evacuare adecvat pentru slash-ul.
Descărcarea fișierelor
WebDriver nu are capacitatea de a accesa casetele de dialog Descărcare prezentate de browsere atunci când faceți clic pe un link sau buton de descărcare. Cu toate acestea, putem ocoli aceste casete de dialog folosind un program separat numit „wget”.
Ce este Wget?
Wget este un program de linie de comandă mic și ușor de utilizat, utilizat pentru automatizarea descărcărilor . Practic, vom accesa Wget din scriptul nostru WebDriver pentru a efectua procesul de descărcare.
Configurarea Wget
Pasul 1: în unitatea dvs. C, creați un folder nou și denumiți-l ca „Wget”.
Descărcați wget.exe de aici și plasați-l în folderul Wget pe care l-ați creat din pasul de mai sus.
Pasul 2: Deschideți Executare apăsând tasta Windows + „R”; introduceți „cmd și faceți clic pe ok
Tastați comanda „cd /” pentru a vă deplasa la directorul rădăcină
Pasul 3: Tastați comanda pentru a verifica dacă setarea dată funcționează
cmd / c C: \\ Wget \\ wget.exe -PC: --no-check-certificate http://demo.guru99.com/selenium/msgr11us.exe
Se pare că există o problemă scrisă în unitatea C.
Pasul 4: Trebuie să depanați erorile wget din linia de comandă înainte de a executa codul folosind Selenium Webdriver. Aceste erori vor persista în Eclipse și mesajele de eroare nu vor fi la fel de informative. Cel mai bine este să începeți să lucrați wget folosind linia de comandă. Dacă funcționează în linie de comandă, va funcționa cu siguranță în Eclipse.
În exemplul nostru, așa cum se arată în pasul 3, există o problemă la scrierea în unitatea C. Să schimbăm locația de descărcare în unitatea D și să verificăm rezultatele.
cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-certificate http://demo.guru99.com/selenium/msgr11us.exe
Messenger a fost descărcat cu succes.
Înainte de a continua, nu uitați să ștergeți fișierul descărcat
Folosind WebDriver și Wget
În exemplul următor, vom folosi WebDriver și wget pentru a descărca un software de chat popular numit Yahoo Messenger. Adresa URL de bază va fi http://demo.guru99.com/test/yahoo.html.
Pasul 1
Importați pachetul „java.io.IOException” deoarece va trebui să prindem o IOException mai târziu la Pasul 4.
Pasul 2
Utilizați getAttribute () pentru a obține valoarea "href" a link-ului de descărcare și salvați-o ca variabilă String. În acest caz, am numit variabila drept „sourceLocation”.
Pasul 3
Configurați sintaxa pentru wget folosind următoarea comandă.
Pasul 4
Începeți procesul de descărcare apelând wget din codul nostru WebDriver.
Pentru a rezuma totul, codul dvs. WebDriver ar putea arăta ca cel prezentat mai jos.
pachet proiect nou;import java.io.IOException;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;clasa publica PG8 {public static main main (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");String baseUrl = "http://demo.guru99.com/test/yahoo.html";Driver WebDriver = nou FirefoxDriver ();driver.get (baseUrl);WebElement downloadButton = driver.findElement (By.id („messenger-download”));String sourceLocation = downloadButton.getAttribute ("href");String wget_command = "cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-certificate" + sourceLocation;încerca {Proces exec = Runtime.getRuntime (). Exec (wget_command);int exitVal = exec.waitFor ();System.out.println ("Valoare de ieșire: + exitVal);} catch (InterruptedException | IOException ex) {System.out.println (ex.toString ());}driver.close ();}}
După executarea acestui cod, verificați unitatea D și verificați dacă programul de instalare Yahoo Messenger a fost descărcat cu succes acolo.
rezumat
- Încărcarea fișierelor în WebDriver se face prin simpla utilizare a metodei sendKeys () în câmpul de intrare selectare fișier pentru a introduce calea către fișierul care urmează să fie încărcat.
- WebDriver nu poate automatiza descărcarea fișierelor pe cont propriu.
- Cel mai simplu mod de a descărca fișiere folosind WebDriver este să utilizați Wget.