Ebben az oktatóanyagban megtanuljuk, hogyan kell kezelni a fájlok feltöltését és letöltését.
Fájlok feltöltése
Ebben a szakaszban a http://demo.guru99.com/test/upload/ címet fogjuk használni tesztalkalmazásként. Ez a webhely minden látogató számára lehetővé teszi fájlok feltöltését anélkül, hogy regisztrálást igényelne.
A fájlok feltöltése a WebDriver programba egyszerűen a sendKeys () metódus használatával történik a fájl kiválasztása beviteli mezőben a feltöltendő fájl elérési útjának megadásához.
kezelje a fájl feltöltését a szelén web meghajtóbanTegyük fel, hogy feltöltjük a "C: \ newhtml.html" fájlt. WebDriver kódunknak meg kell egyeznie az alábbiakkal.
csomag newproject;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;PG9 nyilvános osztály {public static void main (String [] érvel) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");String baseUrl = "http://demo.guru99.com/test/upload/";WebDriver illesztőprogram = new FirefoxDriver ();driver.get (baseUrl);WebElement uploadElement = driver.findElement (By.id ("uploadfile_0"));// írja be a fájl elérési útját a fájlválasztó beviteli mezőbeuploadElement.sendKeys ("C: \\ newhtml.html");// jelölje be az "Elfogadom a szolgáltatási feltételeket" jelölőnégyzetetdriver.findElement (By.id ("feltételek")). kattintson ();// kattintson az "UploadFile" gombradriver.findElement (By.name ("küldés")). kattintson ();}}
A szkript futtatása után képesnek kell lennie a fájl sikeres feltöltésére, és ehhez hasonló üzenetet kell kapnia.
Ne felejtsen el két dolgot követni, amikor fájlokat tölt fel a WebDriver programba
- Nincs szükség a "Tallózás" gombra kattintás szimulálására. A WebDriver automatikusan beírja a fájl elérési útját a elem fájlkiválasztó szövegmezőjébe
- Amikor a fájl elérési útját beállítja a Java IDE-jében, használja a megfelelő elválasztási karaktert a hátsó perjelhez.
Fájlok letöltése
A WebDriver nem képes elérni a böngészők által megjelenített Letöltés párbeszédpaneleket, amikor egy letöltési linkre vagy gombra kattint. Ezeket a párbeszédpaneleket azonban megkerülhetjük egy külön "wget" nevű program használatával.
Mi az a Wget?
A Wget egy kicsi és könnyen használható parancssori program, amelyet a letöltések automatizálására használnak . Alapvetően a Wget-et a WebDriver parancsfájlunkról fogjuk elérni a letöltési folyamat végrehajtásához.
A Wget beállítása
1. lépés: Hozzon létre egy új mappát a C meghajtón, és nevezze el „Wget” néven.
Töltse le innen a wget.exe fájlt, és helyezze a fenti lépésben létrehozott Wget mappába.
2. lépés: Nyissa meg a Futtatást a Windows billentyű + "R" megnyomásával; írja be a "cmd és kattintson az OK gombra
Írja be a "cd /" parancsot a gyökérkönyvtárba lépéshez
3. lépés: Írja be a parancsot, hogy ellenőrizze, hogy az adott beállítás működik-e
cmd / c C: \\ Wget \\ wget.exe -PC: --no-check-tanúsítvány http://demo.guru99.com/selenium/msgr11us.exe
Úgy tűnik, hogy probléma merül fel a C meghajtóra.
4. lépés: Hibakeresnie kell a wget hibákat a parancssorban, mielőtt végrehajtaná a kódot a Selenium Webdriver használatával. Ezek a hibák továbbra is fennállnak az Eclipse programban, és a hibaüzenetek nem lesznek olyan informatívak. A legjobb, ha először a wget parancssori parancs segítségével működik. Ha parancssorban működik, akkor biztosan működik az Eclipse-ben.
Példánkban, amint az a 3. lépésben látható, probléma merül fel a C meghajtóba történő írással. Változtassuk a letöltés helyét D meghajtóra, és ellenőrizzük az eredményeket.
cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-tanúsítvány http://demo.guru99.com/selenium/msgr11us.exe
A Messenger sikeresen letöltve.
Mielőtt továbblépne, ne felejtse el törölni a letöltött fájlt
A WebDriver és a Wget használata
A következő példában a WebDriver és a wget segítségével letöltjük a Yahoo Messenger nevű népszerű csevegőszoftvert. Alap URL-jünk a http://demo.guru99.com/test/yahoo.html lesz.
1. lépés
Importálja a "java.io.IOException" csomagot, mert az IOExceptiont később el kell kapnunk a 4. lépésben.
2. lépés
A getAttribute () használatával megszerezheti a letöltési link "href" értékét, és String változóként mentheti el. Ebben az esetben a változót "sourceLocation" néven neveztük el.
3. lépés
Állítsa be a wget szintaxisát a következő paranccsal.
4. lépés
Kezdje meg a letöltési folyamatot a wget meghívásával a WebDriver kódunkról.
Összegezve: WebDriver kódja az alábbiak szerint nézhet ki.
csomag newproject;import java.io.IOException;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;PG8 nyilvános osztály {public static void main (String [] érvel) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Karaktersorozat baseUrl = "http://demo.guru99.com/test/yahoo.html";WebDriver illesztőprogram = new FirefoxDriver ();driver.get (baseUrl);WebElement downloadButton = driver.findElement (Írta:.id ("messenger-download"));String sourceLocation = letöltésButton.getAttribute ("href");Karakterlánc wget_command = "cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-certificate" + sourceLocation;próbáld ki {Folyamat exec = Runtime.getRuntime (). Exec (wget_command);int exitVal = exec.waitFor ();System.out.println ("Kilépési érték: + exitVal);} catch (InterruptedException | IOException ex) {System.out.println (ex.toString ());}driver.close ();}}
A kód végrehajtása után ellenőrizze a D meghajtót, és ellenőrizze, hogy a Yahoo Messenger telepítőt sikeresen letöltötték-e oda.
Összegzés
- A fájlok feltöltése a WebDriver programba egyszerűen a sendKeys () metódus használatával történik a fájl kiválasztása beviteli mezőben a feltöltendő fájl elérési útjának megadásához.
- A WebDriver nem tudja automatikusan automatizálni a fájlok letöltését.
- A fájlok letöltésének legegyszerűbb módja a WebDriver használatával a Wget használata.