how upload file using selenium webdriver 3 methods
Naučte sa rôzne spôsoby spracovania nahrávania súborov v seléne pomocou príkladov kódu:
Nahrávanie súborov sa vykonáva, keď je potrebné nahrať akýkoľvek súbor alebo dokument na konkrétnu webovú stránku, ako sú formuláre, registračné stránky, nahrávače dokumentov atď.
Proces odovzdania súboru zahŕňa prehliadanie súboru z požadovaného umiestnenia alebo z počítača a jeho odovzdanie na webovú stránku.
=> Skontrolujte VŠETKY návody na selén tu
Čo sa dozviete:
Načítať súbor selénu
Odovzdanie súboru na serveri Selenium môže uľahčiť ľudskú prácu a dá sa vykonať jednoducho pomocou súboru sendKeys () metóda. Po nahraní súboru sa zobrazí správa, ktorá potvrdzuje, či sa súbor úspešne odovzdáva. Takýchto automatizačných metód na nahrávanie súborov je oveľa viac.
Témy, na ktoré sa v tejto príručke zameriavame, sú nahrávanie súborov vo formáte HTML, metódy manipulácie s nahrávaním súborov v seléne (ktoré by zahŕňali najmä metódy: použitie sendKeys, potom použitie triedy AutoIT a Robot).
Tento výukový program tiež vysvetľuje implementáciu kódu na spracovanie nahrávania súborov pomocou týchto metód v seléne, po ktorom uvidíme niekoľko príkladov, keď sa nahrávanie súborov vykonáva pomocou selénu.
Nahranie súboru v HTML
Implementácia nižšie uvedeného kódu vysvetľuje postup nahrávania súborov na stránke HTML. HTML kód ukazuje, ako je možné vykonať operáciu nahrávania, kliknutím na ikonu Vyberte súbor Kliknite na tlačidlo pre prechádzanie súborom, ktorý chcete nahrať, a potom kliknite na Nahrajte súbor možnosť, po ktorej môžeme vidieť, že sa súbor úspešne nahral.
Vyššie uvedený obrázok pozostáva zo stránky vytvorenej vo formáte HTML a nižšie je uvedený HTML kód. Poďme sa rýchlo pozrieť na HTML kód.
File Upload File Uploading (Upload the image file)
Select file to upload:
Teda pri nahraní požadovaného súboru kliknutím na Nahrajte súbor Táto možnosť sa zobrazí nižšie uvedená stránka (obrázok) (tj. zobrazí sa nahraný obrazový súbor), ktorá potvrdzuje, že súbor vybraný na nahranie bol úspešne nahraný.
(obrázok zdroj )
Metódy nahrávania súborov na seléne
Pozrime sa na niektoré metódy manipulácie s nahrávaním súborov a tiež na implementáciu kódu pre tie isté.
Súbory sa nahrávajú na seléne pomocou nasledujúcich metód:
- Použitie metódy sendKeys
- Pomocou nástroja AutoIT
- S pomocou Robot Class
# 1) Použitie metódy sendKeys
Najzákladnejším spôsobom nahrávania súborov na seléne je metóda sendKeys. Je to zabudovaná funkcia na nahrávanie súborov v seléne.
Syntax je uvedená nižšie:
WebElement upload_file = driver.findElement(By.xpath('//input(@id='file_up')')); upload_file.sendKeys('C:/Users/Sonali/Desktop/upload.png');
Pochopme implementáciu kódu pre vyššie uvedenú techniku:
Pri nahrávaní súborov pomocou tejto metódy najskôr musíme skontrolovať prvok alebo tlačidlo poskytnuté na odovzdanie súboru a potom pomocou príkazu sendKeys vyhľadať cestu, kde sa uchováva skutočný súbor, ktorý sa má nahrať. Umiestnite cestu spolu s názvom súboru do sendKeys, aby sa program dostal na uvedenú cestu a načítal súbor.
Potom kliknite na tlačidlo uložiť alebo odoslať a súbor sa zobrazí nahraný. Občas dostaneme aj správu, že sa súbor úspešne nahráva.
Implementácia kódu pomocou metódy sendKeys:
c ++ prevod znaku na reťazec
package SeleniumPrograms; import java.io.IOException; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class FileUpload { public static void main(String() args) throws IOException, InterruptedException { // TODO Auto-generated method stub WebDriver d = new FirefoxDriver(); d.manage().window().maximize(); //always write wait code after this d.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS); //for page load d.get('https://www.monsterindia.com/seeker/registration'); //Testing webpage d.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); //for Implicit wait JavascriptExecutor js = (JavascriptExecutor)d; //Scrolling using JavascriptExecutor js.executeScript('window.scrollBy(0,380)');//Scroll Down to file upload button (+ve) Thread.sleep(3000); // FILE UPLOADING USING SENDKEYS .... WebElement browse = d.findElement(By.xpath('//input(@id='file-upload')')); //click on ‘Choose file’ to upload the desired file browse.sendKeys('C:\Users\Chait\Desktop\Files\Job Specification.txt'); //Uploading the file using sendKeys System.out.println('File is Uploaded Successfully'); } }
Pre nahrávanie súborov pomocou možnosti sendKeys teda jednoducho musíme použiť vstavanú metódu sendKeys na úspešné nahranie požadovaného súboru.
Toto je výstup vyššie uvedeného kódu (pre Monster.com ) kde môžeme vidieť správu zobrazenú ako: „Súbor bol úspešne nahraný“ pri nahrávaní súboru do webového ovládača selénu pomocou metódy sendKeys.
# 2) Používanie AutoIT
AutoIT je freeware a nástroj na automatizáciu otvoreného zdroja pre operačný systém Windows. Je napísaný v skriptovacom počítačovom jazyku BASIC pre automatizáciu používateľského rozhrania systému Microsoft Windows. Simuluje ľubovoľnú kombináciu stlačenia klávesov, pohybov myši a manipulácie ovládania okien.
Kroky na stiahnutie a inštaláciu nástroja AutoIT:
- Otvorené odkaz
- Prejdite na AUTOIT -> STIAHNUTIE. Stiahnite si najnovšiu verziu AutoIT.
- Pokračujte v inštalácii a nastavení AutoIT (ďalšie -> súhlasiť -> výber 32/64 bitov -> výber umiestnenia inštalácie súboru -> dokončiť.
- Existujú 2 inštalačné súbory: a) AutoIt verzia 3 a b) SciTE auto 3.
- Po dokončení inštalácie otvorte editor AutoIT.
- Prejdite na miesto, kde sú uložené inštalačné súbory, kliknite na súbor „SciTE.exe“ a otvorí sa editor AutoIT. Pre editor AutoIT si pozrite nasledujúcu snímku obrazovky.
AutoIT_Editor:
Poďme to v krátkosti pochopiť ako používať tento nástroj:
- Otvorte editor AutoIT.
- Musíme napísať jednoduchý kód v editore AutoIT, ktorý je potrebný pre operáciu nahrávania súborov (názov súboru, ktorý sa má nahrať, bude uvedený v kóde).
- Teraz zatvorte editor a kliknite naň pravým tlačidlom myši, uvidíte možnosť kompilácie skriptu. Vyberte možnosť kompilovaného skriptu (x64) pre 64-bitový počítač a choďte s kompilovaným skriptom (x86) pre 32-bitový počítač.
- Ihneď po dokončení vyššie uvedeného kroku sa vytvorí súbor .exe a tento súbor bude uvedený v našom kóde pre zatmenie selénu. Po kompilácii, ako je vidieť na obrázku nižšie „Fileupload.exe“ súbor sa vytvorí. Teraz môžeme tento súbor využiť v skripte webového ovládača selén.
Saved_files:
Nasledujúci obrázok nám pomáha pochopiť, ako sa nahráva súbor, ktorý je form.csv, a to spustením skriptu zatmenia selénu, pri ktorom sa spustí súbor fileupload.exe.
>> Navštívte toto stránke pre viac informácií o AutoIT.
Implementáciu tejto metódy uvidíme neskôr v tomto tutoriále.
Výhody AutoIT:
- AutoIT je open-source nástroj, za ktorý nemusíme platiť.
- Malé samostatné spustiteľné súbory je možné vytvoriť pomocou aplikácie AutoIT.
- Podporuje jednoduché nahrávanie alebo prehrávanie skriptov.
- Kód môžeme ladiť jednoducho pomocou príkaz na zápis do konzoly .
- Má možnosť vytvárať rôzne grafické užívateľské rozhrania a rozpoznáva takmer všetky základné ovládacie prvky systému Windows.
- Je to jednoduché a užívateľsky príjemné.
Nevýhody AutoIT:
- Funguje iba v operačnom systéme Windows
- Pretože vedomosti o základných princípoch kódovania sú nevyhnutnosťou, ukazuje sa, že sú skvelým nástrojom pre profesionálov, ale pre začiatočníkov môžu byť trochu komplikované.
- AutoIT nemá zatiaľ k dispozícii podporu Java.
- Používatelia musia importovať samostatné knižnice a používať rôzne preddefinované pomocné funkcie.
Prejdime teraz k implementačnému kódu Nahrávania súborov pomocou funkcie AutoIT:
Tu uvidíme, ako zvládneme nahrávanie súborov pomocou AutoIT v seléne. Z tohto dôvodu zvážme príklad webu OrangeHRM.
Implementácia kódu na spracovanie nahrávania súborov v seléne pomocou AutoIT:
package SeleniumPrograms; import java.io.IOException; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class FileUpload { public static void main(String() args) throws IOException, InterruptedException { // TODO Auto-generated method stub WebDriver d = new FirefoxDriver(); d.manage().window().maximize(); d.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS); // for page load d.get(“https://opensource-demo.orangehrmlive.com/“); // Testing webpage d.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); // for Implicit wait WebElement uname = d.findElement(By.id('txtUsername')); // Username.........ID uname.sendKeys('Admin'); WebElement pwd = d.findElement(By.name('txtPassword')); // Password.........NAME pwd.sendKeys('admin123'); WebElement loginb = d.findElement(By.xpath('//input(@id='btnLogin')')); loginb.click(); // Loginbutton......XPATH WebElement pim = d.findElement(By.id('menu_pim_viewPimModule')); pim.click(); // Admin tab-PIM WebElement config = d.findElement(By.id('menu_pim_Configuration')); config.click(); //Configuration tab WebElement data_imp = d.findElement(By.partialLinkText('Data ')); data_imp.click(); //Data Import tab.....PARTIALLINKT // UPLOADING FILE USING AutoIT.... WebElement browser = d.findElement(By.xpath('//input(@id='pimCsvImport_csvFile')')); //Browse button browser.click(); System.out.println(“1”); Runtime.getRuntime().exec('C:\Users\Chait\Desktop\autoit\fileupload.exe'); System.out.println('2'); Thread.sleep(3000); WebElement upload = d.findElement(By.id('btnSave')); //Upload button upload.click(); System.out.println('3'); System.out.println('File Uploaded Successfully'); // Confirmation message } }
Ako je vidieť vo vyššie uvedenom kóde, nasledujúci riadok je veľmi dôležitý, pretože ukazuje použitie AutoIT:
Runtime.getRuntime (). Exec („C: \ Users \ Chait \ Desktop \ autoit \ fileupload.exe');
Tu,
- Beh programu : Umožňuje skriptu rozhranie s prostredím, v ktorom je spustený.
- getRuntime (): Používa sa na získanie aktuálneho behu spojeného s procesom.
- exec (): Vykoná skript AutoIT (tu je fileupload.exe).
Keď program vykoná tento riadok, prejde súborom fileupload.exe, kde sa vykoná kód AutoIT, ako je uvedené nižšie:
ControlFocus('File Upload','','Edit1') ControlSetText('File Upload','','Edit1','C:UsersChaitDesktopautoitdata_file.csv') ControlClick('File Upload','','Button1')
Tu,
- ControlFocus: Táto metóda nastaví vstupné zameranie na textové pole „názov súboru“.
- ControlSetText: Táto metóda definuje cestu k súboru. Súbor, ktorý budeme nahrávať do textového poľa „názov súboru“ - jeho cesta je vysledovaná.
- ControlClick: Táto metóda sa používa na kliknutie na tlačidlo „Otvoriť“ v okne nástroja na nahrávanie súborov.
Výstup pre vyššie uvedený kód je uvedený nižšie:
čím otvoriť xml súbory
(obrázok zdroj )
# 3) S pomocou triedy robotov
Roboti, ako vieme, pomáhajú pri riadení rôznych činností, ako je vykonávanie niektorých úloh, manipulácia s klávesnicami, funkciami myši a mnoho ďalších. Tu budeme rozumieť určitým funkciám, ktoré sú užitočné pri ovládaní klávesnice a myši, keď je aplikácia testovaná pomocou Selén .
KeyEvents alebo metódy implementácie triedy robotov
Otázky a odpovede na skúšku CSQA vo formáte PDF
Pri implementácii triedy Robot existuje niekoľko metód na vykonávanie testovacích skriptov.
Nižšie sú uvedené:
- Stlačenie klávesy(): Táto metóda sa volá, keď chceme stlačiť ľubovoľnú klávesu.
-
- Príklad: robot.keyPress (KeyEvent. UK_ENTER );
- KeyRelease (): Táto metóda sa používa na uvoľnenie stlačeného klávesu.
- Príklad: robot.keyRelease (KeyEvent. UK_ENTER );
- MouseMove (): Používa sa, keď je potrebné pohybovať kurzorom myši nad súradnicami „X“ a „Y“.
- Príklad: robot.mouseMove ( Coordinates.get.X () , Coordinates.get.Y () );
- Myš Press (): Táto metóda sa volá, keď chceme stlačiť ľavé tlačidlo myši.
- Príklad: robot.mousePress (InputEvent. BUTTON_MASK );
- Uvoľnenie myši (): Táto metóda sa používa na uvoľnenie stlačeného tlačidla myši.
- Príklad: robot.mouseRelease (InputEvent. BUTTON_DOWN_MASK );
Výhody triedy robotov
- Nahrávanie súborov pomocou triedy robotov je jednoduché.
- Zaoberá sa funkciami klávesnice a myši.
- Je tiež možné pracovať s pop-up.
Nevýhody triedy robota
- Udalosť klávesnice alebo myši by fungovala iba na aktuálnej inštancii okna.
- Ak sa počas vykonávania udalosti robota presunie vykonávanie kódu do iného okna, udalosť myši alebo klávesnice zostáva v predchádzajúcom okne.
- Prepínanie medzi rôznymi oknami nie je ľahké.
Implementácia kódu na nahrávanie súborov pomocou triedy robotov:
Z tohto dôvodu zvážime príklad Grammarly.com webovú stránku. Nižšie je uvedený implementačný kód na spracovanie nahrávania súborov v seléne pomocou triedy Robot.
package SeleniumPrograms; import java.awt.AWTException; import java.awt.Toolkit; import java.awt.datatransfer.StringSelection; import java.util.concurrent.TimeUnit; import java.awt.Robot; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import com.sun.glass.events.KeyEvent; public class FileUpload_Robo { public static void main(String() args) throws InterruptedException, AWTException { // TODO Auto-generated method stub WebDriver drv = new FirefoxDriver(); // starting Firefox browser drv.manage().window().maximize(); // maximizing window drv.manage().timeouts().pageLoadTimeout(10, TimeUnit. SECONDS);//for page load drv.get('https://www.grammarly.com/plagiarism-checker');//open testing website drv.manage().timeouts().implicitlyWait(10, TimeUnit. SECONDS);// for Implicit wait JavascriptExecutor js = (JavascriptExecutor)drv; // Scroll operation using Js Executor js.executeScript('window.scrollBy(0,200)'); // Scroll Down(+ve) upto browse option Thread.sleep(2000); // suspending execution for specified time period WebElement browse = drv.findElement(By.linkText('Upload a file')); // using linkText, to click on browse element browse.click(); // Click on browse option on the webpage Thread.sleep(2000); // suspending execution for specified time period // creating object of Robot class Robot rb = new Robot(); // copying File path to Clipboard StringSelection str = new StringSelection('C:\Users\Chait\Desktop\File upload.docx'); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(str, null); // press Contol+V for pasting rb.keyPress(KeyEvent.VK_CONTROL); rb.keyPress(KeyEvent.VK_V); // release Contol+V for pasting rb.keyRelease(KeyEvent.VK_CONTROL); rb.keyRelease(KeyEvent.VK_V); // for pressing and releasing Enter rb.keyPress(KeyEvent.VK_ENTER); rb.keyRelease(KeyEvent.VK_ENTER); } }
Výstup vyššie uvedeného kódu selénu je uvedený nižšie:
Súbory je teda možné nahrávať pomocou triedy Robot, kde môžeme vidieť použitie vstupných udalostí ako stlačenie klávesu a uvoľnenie klávesu na kopírovanie, vkladanie, zadávanie atď.
Príklady nahrávania súborov
Pozrime sa na niekoľko príkladov nahrávania súborov, ktoré sa vykonávajú pomocou selénu:
# 1) Účet Gmail
V účte Gmail môžete počas odosielania e-mailov niekomu zahrnúť prílohu, t. J. Súborový dokument, ktorý môže byť ľubovoľného typu: doc, text, csv, obrázok, pdf atď. Nahrávanie súborov tu prichádza do kontextu.
Viac podrobností nájdete na snímke obrazovky s nahrávaním súboru.
# 2) Nahranie dokumentu na overenie
Pre registračné stránky alebo formuláre zvyčajne potrebujeme nahrať dokumenty na overenie.
Ďalšie objasnenie nájdete na nasledujúcom obrázku:
ID_Proof
Reg_form
Pre rôzne takéto overenia, ako napríklad overenie dokladu, overenie adresy, doklad o vzdelaní atď., Je potrebné nahrať konkrétne dokumenty.
Záver
V tomto návode sme teda videli nahrávanie súborov na stránku HTML. Tiež sme videli rôzne spôsoby spracovania nahrávania súborov v seléne (ktoré zahŕňajú metódy ako použitie sendKeys, použitie AutoIT a použitie triedy Robot). Pochopili sme tiež implementáciu kódu na spracovanie nahrávania súborov v seléne pre každú z týchto metód a nakoniec sme sa pozreli na niekoľko príkladov.
Autor Bio - Tento článok napísal Sonali Satpute, kvalifikovaná B.E. (počítač) zo spoločností MITCOE, Pune, Professional Software Tester a Content Writer.
=> Prečítajte si kompletného sprievodcu selénom
Odporúčané čítanie
- Ako zaobchádzať s pop-up oknami systému selén pomocou AutoIT
- Ako vyberať rádiové tlačidlá v selenovom WebDriveri?
- Ako začiarknuť políčko na seléne s príkladmi
- Výukový program Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- Úvod do softvéru Selenium WebDriver - Výučba selénu č. 8
- Výukový program pre selén ChromeDriver: Testy selenového webdriveru v prehliadači Chrome
- Robotická trieda v selenovom WebDriveri s Java
- Výukový program AutoIt - Stiahnutie, inštalácia a základný skript AutoIt