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.

  • 📤 Latausmenetelmä: Käytä sendKeys()-funktiota tiedoston syöteelementissä lähettääksesi absoluuttisen tiedostopolun napsauttamatta Selaa-painiketta.
  • 📥 Latauspolku: Määritä mukautettu lataushakemisto ChromeOptionsin tai CDP Page.setDownloadBehavior -metodin avulla kohdassa Selenium 4.
  • 🪟 Natiivivalintaikkunat: Käynnistä AutoIt-skriptit tai java.awt.Robot, kun käyttöjärjestelmän tiedostovalitsin estää WebDriverin vuorovaikutuksen.
  • 🤖 AI-apu: Generatiivinen tekoäly ehdottaa valitsimia, rakentaa testidatatiedostoja ja validoi ladattujen tiedostojen eheyden automaattisesti.
  • 🛡️ Vahvistustarkistus: Vahvista latauksen onnistuminen vastausviesteillä ja tarkista lataukset tiedostokoon tai tarkistussumman vertailun avulla.

Kuinka ladata ja ladata tiedosto käyttämällä Selenium

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ä.

Lataa tiedosto sisään Selenium
Käsittele Tiedoston lataus -ponnahdusikkuna Selenium Web-ohjain

Oletetaan, että haluamme ladata tiedoston "C:\newhtml.html". WebDriver-koodimme tulee olla alla olevan kaltainen.

paketti uusiprojekti;
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.

Lataa tiedosto sisään Selenium

Muista seuraavat kaksi asiaa ladatessasi tiedostoja WebDriveriin:

  1. ”Selaa”-painikkeen napsauttamista ei tarvitse simuloida. WebDriver lisää tiedostopolun automaattisesti tiedoston valintatekstikenttään. elementti.
  2. Kun määrität tiedostopolun Java IDE, käytä oikeaa kenoviivaa.

Lataa tiedosto sisään Selenium

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.

; upload.au3 – odottaa Avaa-valintaikkunaa ja kirjoittaa tiedostopolun
WinWaitActive("Avata")
Lähetä(“C:\newhtml.html”)
Lähetä("{SYÖTÄ}")

alkaen Java, käynnistä apuohjelma Selaa-napsautuksen jälkeen:

driver.findElement(By.id()“selaa-painiketta”)).klikkaa();
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.

Wgetin määrittäminen

Vaihe 2) Avaa Suorita painamalla Windows näppäin + “R”; kirjoita “cmd” ja napsauta OK.

Wgetin määrittäminen

Siirry juurihakemistoon kirjoittamalla komento ”cd /”.

Wgetin määrittäminen

Vaihe 3) Kirjoita komento tarkistaaksesi, toimiiko annettu asetus.

cmd /c C:\\Wget\\wget.exe -PC: –no-check-certificate https://demo.guru99.com/selenium/msgr11us.exe

Wgetin määrittäminen

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.

cmd /c C:\\Wget\\wget.exe -PD: –no-check-certificate https://demo.guru99.com/selenium/msgr11us.exe

Wgetin määrittäminen

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.

WebDriverin ja Wgetin käyttäminen

Vaihe 1) Tuo "java.io.IOException" -paketti, koska meidän on saatava IOException myöhemmin vaiheessa 4.

WebDriverin ja Wgetin käyttäminen

Vaihe 2) Käytä getAttribute()-funktiota latauslinkin ”href”-arvon hakemiseen ja tallenna se merkkijono-muuttujaksi. Tässä tapauksessa nimesimme muuttujan ”sourceLocation”.

WebDriverin ja Wgetin käyttäminen

Vaihe 3) Määritä wgetin syntaksi seuraavalla komennolla.

WebDriverin ja Wgetin käyttäminen

Vaihe 4) Aloita latausprosessi soittamalla wget WebDriver-koodistamme.

WebDriverin ja Wgetin käyttäminen

Yhteenvetona WebDriver-koodisi saattaa näyttää alla esitetyltä.

paketti uusiprojekti;
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.

WebDriverin ja Wgetin käyttäminen

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.

Chrome-ohjain kuljettaja = uusi ChromeDriver();
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ä.

UKK

Selenium kutsuu sendKeys()-funktiota elementti absoluuttisella tiedostopolulla. Selain täyttää kentän suoraan, joten käyttöjärjestelmän tiedostovalitsinta ei avaudu eikä Selaa-painiketta tarvitse napsauttaa.

Kun sivulla ei ole tiedostosyötettä, käytä AutoIt-toimintoa Windows tai java.awt.Robot-luokka. Nämä työkalut kirjoittavat polun aktiivisen käyttöjärjestelmän valintaikkunaan ja painavat Enter-näppäintä, kun Selaa-painiketta on napsautettu.

Kutsu executeCdpCommand(“Page.setDownloadBehavior”, params) -funktiota asetuksella behavior arvoon allow ja downloadPath-arvolle kansio. Selenium 4 välittää komennon Chrome DevToolsiin ja Tallenna nimellä -kehote ohitetaan.

Kyllä. Tekoälyavustajat lukevat latauslomakkeesi, ehdottavat valitsimia, luovat rajatiedostoja, kuten tyhjiä, ylisuuria tai väärän tiedostotunnisteen omaavia näytteitä, ja kirjoittavat sendKeys()-lohkon. Tämä lyhentää asennusaikaa ja paljastaa reunatapauksia, jotka ihmistestaajat usein huomaamatta jäävät.

AI-työkaluja Kysele kohdekansiota, vertaa tiedostokokoa ja tarkistussummaa odotettuihin arvoihin ja merkitse ristiriitaisuudet. Visio-mallit voivat jopa avata PDF-tiedostoja tai kuvia ja varmistaa, että sisältö vastaa linkkitunnistetta, mikä poistaa manuaalisen tarkistuksen regressioajoista.

Wget ohittaa selaimen kokonaan ja tallentaa tiedoston suoraan levylle komentoriviprosessin kautta. Se on hyödyllinen vanhemmissa järjestelmissä. Selenium 2 tai 3 asennusta, joissa CDP:n ja ChromeOptionsin latausasetukset eivät ole käytettävissä.

Tiivistä tämä viesti seuraavasti: