Tässä opetusohjelmassa opimme kuinka käsitellä tiedostojen lataamista ja lataamista.
Tiedostojen lataaminen
Tässä osiossa käytämme testisovelluksemme http://demo.guru99.com/test/upload/. Tämä sivusto antaa kävijöille mahdollisuuden ladata tiedostoja helposti ilman heidän rekisteröitymistä.
Tiedostojen lataaminen WebDriveriin tapahtuu yksinkertaisesti käyttämällä sendKeys () -menetelmää tiedostonvalintakentässä syöttääksesi polun ladattavaan tiedostoon.

Oletetaan, että haluamme ladata tiedoston "C: \ newhtml.html". WebDriver-koodin tulee olla samanlainen kuin alla.
paketti uusi projekti;tuonti org.openqa.selenium. *;tuo org.openqa.selenium.firefox.FirefoxDriver;julkinen luokka PG9 {public staattinen void main (String [] argumentoi) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Merkkijono baseUrl = "http://demo.guru99.com/test/upload/";WebDriver-ohjain = uusi FirefoxDriver ();driver.get (baseUrl);WebElement uploadElement = driver.findElement (By.id ("uploadfile_0"));// kirjoita tiedostopolku tiedostovalinnan syöttökenttäänuploadElement.sendKeys ("C: \\ newhtml.html");// valitse Hyväksyn käyttöehdot -valintaruutudriver.findElement (By.id ("ehdot")). napsauta ();// napsauta "UploadFile" -painikettadriver.findElement (By.name ("lähetä")). napsauta ();}}
Kun olet suorittanut tämän komentosarjan, sinun pitäisi pystyä lataamaan tiedosto onnistuneesti ja saat samanlaisen viestin.
Muista noudattaa kahta asiaa, kun lataat tiedostoja WebDriveriin
- "Selaa" -painikkeen napsautusta ei tarvitse simuloida. WebDriver syöttää tiedostopolun automaattisesti -elementin tiedostovalinta-tekstiruutuun
- Kun asetat tiedostopolun Java IDE -käyttöjärjestelmässäsi, käytä oikeaa pakomerkkiä takaviivaan.
Tiedostojen lataaminen
WebDriverilla ei ole mahdollisuutta käyttää selainten latausvalintaikkunoita, kun napsautat latauslinkkiä tai -painiketta. Voimme kuitenkin ohittaa nämä valintaikkunat käyttämällä erillistä ohjelmaa nimeltä "wget".
Mikä on Wget?
Wget on pieni ja helppokäyttöinen komentoriviohjelma, jota käytetään latausten automatisointiin . Pohjimmiltaan pääsemme Wgetiin WebDriver-komentosarjastamme latausprosessin suorittamiseksi.
Wgetin asettaminen
Vaihe 1: Luo C-asemalle uusi kansio ja nimeä se nimellä "Wget".
Lataa wget.exe täältä ja aseta se yllä olevasta vaiheesta luomallesi Wget-kansioon.
Vaihe 2: Avaa Suorita painamalla Windows-näppäintä + "R"; kirjoita "cmd ja napsauta ok
Kirjoita komento "cd /" siirtyäksesi juurihakemistoon
Vaihe 3: Kirjoita komento tarkistaaksesi, toimiiko annettu asennus
cmd / c C: \\ Wget \\ wget.exe -PC: --no-check-certificate http://demo.guru99.com/selenium/msgr11us.exe
Näyttää olevan ongelma kirjoittamalla C-asemaan.
Vaihe 4: Sinun on selvitettävä wget-virheet komentoriviltä, ennen kuin suoritat koodin Selenium Webdriverilla. Nämä virheet jatkuvat Eclipse-sovelluksessa eivätkä virheilmoitukset ole yhtä informatiivisia. Parasta saada ensin wget toimimaan komentorivillä. Jos se toimii komentorivillä, se toimii varmasti Eclipse-ohjelmassa.
Esimerkissämme, kuten vaiheessa 3 näkyy, C-asemaan kirjoitettaessa on ongelma. Vaihdetaan lataussijaintiin D-asema ja tarkistetaan tulokset.
cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-certificate http://demo.guru99.com/selenium/msgr11us.exe
Messenger ladattiin onnistuneesti.
Ennen kuin jatkat, älä unohda poistaa ladattua tiedostoa
WebDriverin ja Wgetin käyttäminen
Seuraavassa esimerkissä käytämme WebDriveria ja wgetiä lataamaan suositun chat-ohjelmiston nimeltä Yahoo Messenger. Perus-URL-osoitteemme on http://demo.guru99.com/test/yahoo.html.
Vaihe 1
Tuo "java.io.IOException" -paketti, koska joudumme saamaan IOExceptionin myöhemmin vaiheessa 4.
Vaihe 2
Käytä getAttribute () -toimintoa ladataksesi linkin "href" -arvon ja tallentaaksesi sen merkkijonomuuttujana. Tässä tapauksessa nimitimme muuttujan nimellä "sourceLocation".
Vaihe 3
Määritä wgetin syntaksit seuraavalla komennolla.
Vaihe 4
Aloita latausprosessi soittamalla wget WebDriver-koodistamme.
Kaiken kaikkiaan WebDriver-koodisi saattaa näyttää alla olevalta.
paketti uusi projekti;tuo java.io.IOException;tuonti org.openqa.selenium. *;tuo org.openqa.selenium.firefox.FirefoxDriver;julkinen luokka PG8 {public staattinen void main (String [] argumentoi) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Merkkijono baseUrl = "http://demo.guru99.com/test/yahoo.html";WebDriver-ohjain = uusi FirefoxDriver ();driver.get (baseUrl);WebElement downloadButton = driver.findElement (Tekijä.id ("messenger-download"));Merkkijono sourceLocation = downloadButton.getAttribute ("href");Merkkijono wget_command = "cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-certificate" + sourceLocation;yrittää {Prosessi exec = Runtime.getRuntime (). Exec (wget_command);int exitVal = exec.waitFor ();System.out.println ("Poistumisarvo: + exitVal);} catch (InterruptedException | IOException ex) {System.out.println (exString ());}kuljettaja.sulje ();}}
Kun olet suorittanut tämän koodin, tarkista D-asema ja varmista, että Yahoo Messenger -asennusohjelma ladattiin sinne onnistuneesti.
Yhteenveto
- Tiedostojen lataaminen WebDriveriin tapahtuu yksinkertaisesti käyttämällä sendKeys () -menetelmää tiedostonvalintakentässä syöttääksesi polun ladattavaan tiedostoon.
- WebDriver ei voi automatisoida tiedostojen lataamista yksin.
- Helpoin tapa ladata tiedostoja WebDriverin avulla on käyttää Wgetiä.