Kuinka ladata ja ladata tiedosto käyttämällä Selenium
⚡ Älykäs yhteenveto
Lataa ja lataa tiedosto käyttämällä Selenium WebDriver-työnkulut käyttävät natiivia sendKeys()-funktiota syöttökentille, AutoIt- tai Robot-funktiota valintaikkunoille ja CDP-komentoja Selenium 4 asettaaksesi turvallisia latauspolkuja automaatiosuoritusten aikana.

Tiedostojen lataaminen WebDriverissa tapahtuu yksinkertaisesti käyttämällä sendKeys()-metodia tiedoston valinta -kentässä ja syöttämällä ladattavan tiedoston polku. Tässä opetusohjelmassa opit käsittelemään tiedostojen lataamista ja lataamista käyttämällä Selenium WebDriver.
Kuinka ladata tiedosto sisään Selenium
Tässä osiossa käytämme https://demo.guru99.com/test/upload/ kuin testisovelluksemme. Tämän sivuston avulla kuka tahansa kävijä voi helposti ladata tiedostoja ilman rekisteröitymistä.

Oletetaan, että haluamme ladata tiedoston "C:\newhtml.html". WebDriver-koodimme tulee olla alla olevan kaltainen.
tuoda org.openqa.seleeni.*;
tuoda org.openqa.selenium.firefox.FirefoxKuljettaja;
julkinen luokka PG9 {
julkinen staattinen tyhjyys pää(jono[] argumentit) {
System.setProperty(”webdriver.gecko.driver”,“C:\\geckodriver.exe”);
jono perus-URL = https://demo.guru99.com/test/upload/;
web-ajuri kuljettaja = uusi FirefoxKuljettaja();
ajuri.get(perusosoite);
Verkkoelementti uploadElement = driver.findElement(By.id()”lataustiedosto_0”));
// syötä tiedostopolku tiedoston valintakenttään
uploadElement.sendKeys(“C:\\newhtml.html”);
// valitse valintaruutu ”Hyväksyn käyttöehdot”
driver.findElement(By.id()"ehdot")).klikkaa();
// napsauta “Lähetä tiedosto” -painiketta
driver.findElement(Nimen.By.name()"lähetä")).klikkaa();
}
}
Kun olet suorittanut tämän skriptin, sinun pitäisi pystyä lataamaan tiedosto onnistuneesti ja sinun pitäisi saada samanlainen viesti.
Muista seuraavat kaksi asiaa ladatessasi tiedostoja WebDriveriin:
- ”Selaa”-painikkeen napsauttamista ei tarvitse simuloida. WebDriver lisää tiedostopolun automaattisesti tiedoston valintatekstikenttään. elementti.
- Kun määrität tiedostopolun Java IDE, käytä oikeaa kenoviivaa.
Muiden kuin syötetietojen latausikkunan käsittely AutoIt-toiminnolla
Kun sivulla käytetään mukautettua Selaa-painiketta natiivin sijaan elementti, sendKeys() ei toimi. Siinä tapauksessa voit kutsua AutoIt-skriptiä kohdasta Selenium kirjoittaaksesi tiedostopolun käyttöjärjestelmän valintaikkunaan ja paina Enter-näppäintä.
Tallenna alla oleva skripti nimellä lataa.au3, käännä se muotoon upload.exe, sitten käynnistä se Java Selaa-painikkeen napsauttamisen jälkeen.
WinWaitActive("Avata")
Lähetä(“C:\newhtml.html”)
Lähetä("{SYÖTÄ}")
alkaen Java, käynnistä apuohjelma Selaa-napsautuksen jälkeen:
Runtime.getRuntime().exec(“C:\AutoIt\upload.exe”);
java.awt.Robot-luokka on puhdas-Java vaihtoehto, kun AutoIt ei ole käytettävissä, vaikka AutoIt on luotettavampi Windows koska se odottaa dialogia otsikon perusteella.
Kuinka ladata tiedosto sisään Selenium Web-ohjain
WebDriver ei pysty käyttämään Lataa-valintaikkunoita selaimet näyttävät, kun napsautat latauslinkkiä tai -painiketta. Voimme kuitenkin ohittaa nämä valintaikkunat käyttämällä erillistä "wget" -ohjelmaa.
Mikä on Wget?
Wget on pieni ja helppokäyttöinen komentoriviohjelma, jota käytetään latausten automatisointiin. Periaatteessa käytämme Wgetiä WebDriver-skriptistä latausprosessin suorittamiseksi.
Wgetin määrittäminen
Vaihe 1) Luo C-asemaan uusi kansio ja nimeä se nimellä "Wget".
Lataa wget.exe täältä ja sijoita se yllä olevassa vaiheessa luomaasi Wget-kansioon.
Vaihe 2) Avaa Suorita painamalla Windows näppäin + “R”; kirjoita “cmd” ja napsauta OK.
Siirry juurihakemistoon kirjoittamalla komento ”cd /”.
Vaihe 3) Kirjoita komento tarkistaaksesi, toimiiko annettu asetus.
C-asemalle kirjoittamisessa näyttää olevan ongelma.
Vaihe 4) Sinun on debugattava wget-virheet komentorivillä ennen koodin suorittamista käyttämällä Selenium WebDriver. Nämä virheet jatkuvat Eclipse ja virheilmoitukset eivät ole yhtä informatiivisia. On parasta ensin saada wget toimimaan komentoriviltä. Jos se toimii komentorivillä, se toimii varmasti myös Eclipse.
Esimerkissämme, kuten vaiheessa 3 on esitetty, C-asemaan kirjoittamisessa on ongelma. Muutetaan lataussijainti D-asemaksi ja tarkistetaan tulokset.
Messenger ladattiin onnistuneesti.
Ennen kuin jatkat, muista poistaa ladattu tiedosto.
WebDriverin ja Wgetin käyttäminen
Seuraavassa esimerkissä käytämme WebDriveria ja wgetiä ladataksesi suositun chat-ohjelmiston nimeltä Yahoo MessengerTukikohtamme URL tulee olemaan https://demo.guru99.com/test/yahoo.html.
Vaihe 1) Tuo "java.io.IOException" -paketti, koska meidän on saatava IOException myöhemmin vaiheessa 4.
Vaihe 2) Käytä getAttribute()-funktiota latauslinkin ”href”-arvon hakemiseen ja tallenna se merkkijono-muuttujaksi. Tässä tapauksessa nimesimme muuttujan ”sourceLocation”.
Vaihe 3) Määritä wgetin syntaksi seuraavalla komennolla.
Vaihe 4) Aloita latausprosessi soittamalla wget WebDriver-koodistamme.
Yhteenvetona WebDriver-koodisi saattaa näyttää alla esitetyltä.
tuoda java.io.IOPoikkeus;
tuoda org.openqa.seleeni.*;
tuoda org.openqa.selenium.firefox.FirefoxKuljettaja;
julkinen luokka PG8 {
julkinen staattinen tyhjyys pää(jono[] argumentit) {
System.setProperty(”webdriver.gecko.driver”,“C:\\geckodriver.exe”);
jono perus-URL = https://demo.guru99.com/test/yahoo.html;
web-ajuri kuljettaja = uusi FirefoxKuljettaja();
ajuri.get(perusosoite);
Verkkoelementti latauspainike = driver.findElement(By.id()”Messenger-lataus”));
jono lähdeSijainti = latauspainike.getAttribute(”href”);
jono wget_komento = “cmd /c C:\\Wget\\wget.exe -PD: –no-check-certificate” + lähdeSijainti;
yrittää {
Käsitellä asiaa exec = Runtime.getRuntime().exec(wget_komento);
int poistuVal = exec.waitFor();
System.out.println("Poistumisarvo:" + poistuVal);
} saalis (Keskeytetty poikkeus | IOException esim.) {
System.out.println(esim.toString());
}
ajuri.close();
}
}
Kun olet suorittanut tämän koodin, tarkista D-asemasi ja varmista, että Yahoo Messenger asennusohjelma ladattiin onnistuneesti sinne.
Mukautetun latauspolun asettaminen Selenium 4 CDP
Selenium Versiossa 4 on Chrome DevTools -protokolla, jonka avulla voit hallita selaimen latauskäyttäytymistä ilman kolmannen osapuolen työkaluja. Alla oleva koodinpätkä ohjaa kaikki lataukset mukautettuun kansioon ja ohittaa Tallenna nimellä -kehotteen, joten tiedostot päätyvät testin odottamaan paikkaan.
kartta<jono,objekti> parametrit = uusi HajautusMap<>();
params.put("käyttäytyminen", "sallia");
params.put(”latauspolku”, “D:\\seleeni-lataukset”);
driver.executeCdpCommand(”Page.setDownloadBehavior”, parametrit);
ajuri.get(https://demo.guru99.com/test/yahoo.html);
driver.findElement(By.id()”Messenger-lataus”)).klikkaa();
Voit varmistaa latauksen kyselemällä kohdehakemistosta odotetun tiedostonimen ja tarkistamalla sen koon, mikä tekee testistä deterministisen ilman ulkoisia skriptejä.












