Kuidas faili üles laadida ja alla laadida, kasutades Selenium
Laadi üles fail seleenis
Failide üleslaadimine WebDriveris toimub lihtsalt kasutades sendKeys() meetodit failivaliku sisestusväljal, et sisestada üleslaaditava faili tee.
Selles õpetuses õpime, kuidas toimida failide üles- ja allalaadimisega.
Kuidas faili üles laadida Selenium
Selle jaotise jaoks kasutame https://demo.guru99.com/test/upload/ kui meie testrakendus. See sait võimaldab igal külastajal hõlpsasti faile üles laadida, ilma et nad peaksid registreeruma.

Oletame, et soovime üles laadida faili "C:\newhtml.html". Meie WebDriveri kood peaks olema selline, nagu allpool näidatud.
package newproject; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; public class PG9 { public static void main(String[] args) { System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe"); String baseUrl = "https://demo.guru99.com/test/upload/"; WebDriver driver = new FirefoxDriver(); driver.get(baseUrl); WebElement uploadElement = driver.findElement(By.id("uploadfile_0")); // enter the file path onto the file-selection input field uploadElement.sendKeys("C:\\newhtml.html"); // check the "I accept the terms of service" check box driver.findElement(By.id("terms")).click(); // click the "UploadFile" button driver.findElement(By.name("send")).click(); } }
Pärast selle skripti käivitamist peaksite saama faili edukalt üles laadida ja peaksite saama sarnase teate.
Failide WebDriveri üleslaadimisel pidage meeles kahte asja
- Nupu „Sirvi” klõpsamist pole vaja simuleerida. WebDriver sisestab automaatselt failitee faili valiku tekstikasti element
- Kui määrate failitee oma Java IDE, kasutage kaldkriipsu jaoks õiget paomärki.
Kuidas faili alla laadida Selenium Veebidraiver
WebDriver ei saa juurdepääsu dialoogiboksidele Allalaadimine mida brauserid esitavad, kui klõpsate allalaadimislingil või -nupul. Kuid me saame neist dialoogiboksidest mööda minna, kasutades eraldi programmi nimega "wget".
Mis on Wget?
Wget on väike ja hõlpsasti kasutatav käsureaprogramm, mida kasutatakse allalaadimiste automatiseerimiseks. Põhimõtteliselt pääseme allalaadimisprotsessi läbiviimiseks juurde Wgetile meie WebDriveri skripti kaudu.
Wgeti seadistamine
Step 1) Looge oma C-draivis uus kaust ja nimetage see "Wget".
Laadige alla wget.exe siit ja asetage see ülaltoodud sammuga loodud kausta Wget.
Step 2) Avage Käivita, vajutades Windowsi klahvi + "R" ; tippige "cmd ja klõpsake nuppu OK
Sisestage juurkataloogi liikumiseks käsk "cd /".
Step 3) Sisestage käsk, et kontrollida, kas antud seadistus töötab
cmd /c C:\\Wget\\wget.exe -P C: --no-check-certificate https://demo.guru99.com/selenium/msgr11us.exe
Näib, et C-draivi kirjutamisel on probleem.
Step 4) Enne koodi käivitamist peate käsureal wget-i vead siluma Selenium Veebidraiver. Need vead jäävad püsima Eclipse ja veateated ei ole nii informatiivsed. Parim on esmalt wget tööle panna käsurea abil. Kui see töötab käsureal, töötab see kindlasti ka Eclipse.
Meie näites, nagu on näidatud sammus 3, on C-draivi kirjutamisel probleem. Muudame allalaadimiskohaks D-draivi ja kontrollime tulemusi.
cmd /c C:\\Wget\\wget.exe -P D: --no-check-certificate https://demo.guru99.com/selenium/msgr11us.exe
Messenger laaditi edukalt alla.
Enne jätkamist ärge unustage allalaaditud faili kustutada
WebDriveri ja Wgeti kasutamine
Järgmises näites kasutame populaarse vestlustarkvara nimega Yahoo allalaadimiseks WebDriveri ja wget Messenger. Meie baas-URL on https://demo.guru99.com/test/yahoo.html.
Step 1) Importige pakett „java.io.IOException”, kuna peame IOExceptioni hiljem 4. sammus kinni püüdma.
Step 2) Kasutage allalaadimislingi "href" väärtuse leidmiseks ja stringi muutujana salvestamiseks funktsiooni getAttribute(). Sel juhul nimetasime muutujale "sourceLocation".
Step 3) Seadistage wgeti süntaks järgmise käsu abil.
Step 4) Käivitage allalaadimisprotsess, helistades meie WebDriveri koodist wget-le.
Selle kõige kokkuvõtteks võib teie WebDriveri kood välja näha nagu allpool näidatud.
package newproject; import java.io.IOException; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; public class PG8 { public static void main(String[] args) { System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe"); String baseUrl = "https://demo.guru99.com/test/yahoo.html"; WebDriver driver = new 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 -P D: --no-check-certificate " + sourceLocation; try { Process exec = Runtime.getRuntime().exec(wget_command); int exitVal = exec.waitFor(); System.out.println("Exit value: " + exitVal); } catch (InterruptedException | IOException ex) { System.out.println(ex.toString()); } driver.close(); } }
Pärast selle koodi käivitamist kontrollige oma D-draivi ja veenduge, et Yahoo Messenger installer laaditi sinna edukalt alla.
kokkuvõte
- Failide üleslaadimine WebDriveris toimub lihtsalt kasutades sendKeys() meetodit failivaliku sisestusväljal, et sisestada üleslaaditava faili tee.
- WebDriver ei saa failide allalaadimist üksi automatiseerida.
- Lihtsaim viis failide allalaadimiseks WebDriveri abil on kasutada Wget.