how upload file using selenium webdriver 3 methods
Naučte se různé metody zpracování nahrávání souborů v selenu pomocí příkladů kódu:
Nahrávání souborů se provádí, když je potřeba nahrát jakýkoli soubor nebo dokument na konkrétní web, jako jsou formuláře, registrační stránky, nahrávače dokumentů atd.
Proces nahrání souboru zahrnuje procházení souboru z požadovaného umístění nebo z počítače a jeho nahrání na web.
=> Podívejte se na VŠECHNY výukové programy selenu zde
Co se naučíte:
Nahrát soubor selenu
Předání souboru v selenu může usnadnit lidskou práci a lze jej provést jednoduše pomocí sendKeys () metoda. Po nahrání souboru se zobrazí zpráva, která potvrzuje, zda se soubor úspěšně nahrává. Existuje mnoho dalších takových automatizačních metod pro nahrávání souborů.
Témata zahrnutá v tomto výukovém programu zahrnují nahrávání souborů v HTML, metody zpracování nahrávání souborů v selenu (které by zahrnovaly metody jmenovitě: using sendKeys, then using AutoIT and Robot class).
Tento výukový program také vysvětluje implementaci kódu pro zpracování nahrávání souborů pomocí těchto metod v Selenium, po kterém uvidíme několik příkladů, kdy se nahrávání souborů provádí pomocí Selenium.
Nahrání souboru v HTML
Níže uvedená implementace kódu vysvětluje operaci nahrávání souborů na stránce HTML. HTML kód ukazuje, jak lze operaci nahrávání provést kliknutím na ikonu Vyberte soubor tlačítko pro procházení souboru, který chcete nahrát, a poté klikněte na Nahrát soubor možnost, po které vidíme, že se soubor úspěšně nahrál.
Výše uvedený obrázek se skládá ze stránky vytvořené ve formátu HTML a níže je uveden HTML kód stejné stránky. Pojďme se rychle podívat na HTML kód.
File Upload File Uploading (Upload the image file)
Select file to upload:
Při nahrávání požadovaného souboru tedy klikněte na Nahrát soubor Možnost, zobrazí se níže uvedená stránka (obrázek) (tj. zobrazí se nahraný obrazový soubor), která potvrzuje, že soubor vybraný k nahrání byl úspěšně nahrán.
(obraz zdroj )
Metody nahrávání souborů na selenu
Podívejme se na některé metody pro zpracování nahrávání souborů a také implementaci kódu pro stejné.
Nahrávání souborů v selenu lze provést následujícími způsoby:
- Pomocí metody sendKeys
- Pomocí nástroje AutoIT
- S pomocí třídy robotů
# 1) Použití metody sendKeys
Nejzákladnějším způsobem nahrávání souborů na selenu je použití metody sendKeys. Jedná se o vestavěnou funkci pro nahrávání souborů v selenu.
Syntaxe je uvedena níže:
WebElement upload_file = driver.findElement(By.xpath('//input(@id='file_up')')); upload_file.sendKeys('C:/Users/Sonali/Desktop/upload.png');
Rozumíme implementaci kódu pro výše uvedenou techniku:
Pro nahrávání souborů pomocí této metody nejprve musíme zkontrolovat prvek nebo tlačítko poskytnuté pro nahrávání souborů, pak pomocí sendKeys procházet cestu, kde je zachován skutečný soubor, který se má nahrát. Umístěte cestu spolu s názvem souboru do sendKeys, aby byl program navigován na uvedenou cestu k načtení souboru.
Poté klikněte na tlačítko uložit nebo odeslat a soubor se zobrazí nahraný. Občas také obdržíme zprávu, že se soubor úspěšně nahrává.
Implementace kódu pomocí metody sendKeys:
co je loadrunner v testování softwaru
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'); } }
Pro nahrávání souborů pomocí možnosti sendKeys tedy jednoduše musíme použít vestavěnou metodu sendKeys k úspěšnému nahrání požadovaného souboru.
Toto je výstup výše uvedeného kódu (pro Monster.com ) kde můžeme vidět zprávu zobrazenou jako: 'Soubor byl úspěšně nahrán' při nahrávání souboru do selenového webového ovladače pomocí metody sendKeys.
# 2) Používání AutoIT
AutoIT je freeware a automatizační nástroj open-source pro operační systém Windows. Je napsán v základním skriptovacím počítačovém jazyce pro automatizaci uživatelského rozhraní systému Microsoft Windows. Simuluje jakoukoli kombinaci stisků kláves, pohybů myši a manipulace s ovládáním oken.
nejlepší bezplatný software pro opravu systému Windows 10
Kroky ke stažení a instalaci nástroje AutoIT:
- Otevřeno odkaz
- Přejděte na AUTOIT -> STÁHNOUT. Stáhněte si nejnovější AutoIT.
- Pokračujte instalací a nastavením AutoIT (další -> souhlasit -> výběr 32/64 bitů -> výběr umístění instalace souboru -> dokončení.
- Existují 2 instalační soubory: a) AutoIt verze 3 ab) SciTE auto 3.
- Po dokončení instalace otevřete editor AutoIT.
- Přejděte na místo, kde jsou uloženy instalační soubory, klikněte na soubor „SciTE.exe“ a otevře se editor AutoIT. Viz níže uvedený snímek obrazovky editoru AutoIT.
AutoIT_Editor:
Nyní to pochopíme ve zkratce jak používat tento nástroj:
- Otevřete editor AutoIT.
- Musíme do editoru AutoIT napsat jednoduchý kód, který je vyžadován pro operaci nahrávání souboru (název souboru, který se má nahrát, bude uveden v kódu).
- Nyní zavřete editor a klikněte na něj pravým tlačítkem myši, uvidíte možnost kompilace skriptu. Vyberte možnost kompilace skriptu (x64) pro 64bitový stroj a jděte s kompilačním skriptem (x86) pro 32bitový stroj.
- Jakmile je výše uvedený krok dokončen, je vytvořen soubor .exe a tento soubor bude uveden v našem kódu zatmění selenu. Po kompilaci, jak je vidět na následujícím obrázku „Fileupload.exe“ soubor bude vytvořen. Nyní můžeme tento soubor využít ve skriptu webového ovladače Selenium.
Saved_files:
Níže uvedený obrázek nám pomáhá pochopit, jak se nahrává soubor, který je form.csv, spuštěním skriptu zatmění selenu, který spouští soubor fileupload.exe.
>> Navštivte toto strana pro více informací o AutoIT.
Implementaci této metody uvidíme dále v tomto kurzu.
Výhody AutoIT:
- AutoIT je open-source nástroj, za který nemusíme platit.
- Pomocí AutoIT lze vytvořit malé samostatné spustitelné soubory.
- Podporuje snadné nahrávání nebo přehrávání skriptů.
- Kód můžeme snadno odladit příkaz pro zápis do konzoly .
- Má možnost vytvářet různé grafické uživatelské rozhraní a rozpoznává téměř všechny základní ovládací prvky systému Windows.
- Je to jednoduché a uživatelsky přívětivé.
Nevýhody AutoIT:
- Funguje pouze v operačním systému Windows
- Protože znalost základních principů kódování je nutností, ukazuje se jako skvělý nástroj pro profesionály, ale pro začátečníky může být trochu komplikovaná.
- AutoIT zatím nemá k dispozici podporu Java.
- Uživatelé musí při použití různých předdefinovaných funkcí obslužného programu importovat samostatné knihovny.
Nyní přejdeme k implementačnímu kódu Nahrávání souborů pomocí AutoIT:
Zde uvidíme, jak zvládneme nahrávání souborů pomocí AutoIT v selenu. Zvažme tedy příklad webu OrangeHRM.
Implementace kódu pro zpracování nahrávání souborů v selenu pomocí 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 } }
Jak je vidět ve výše uvedeném kódu, následující řádek je velmi důležitý, protože ukazuje použití AutoIT:
Runtime.getRuntime (). Exec („C: \ Users \ Chait \ Desktop \ autoit \ fileupload.exe“);
Tady,
- Runtime : Umožňuje rozhraní skriptu s prostředím, ve kterém je spuštěn.
- getRuntime (): Používá se k získání aktuálního modulu runtime přidruženého k procesu.
- exec (): Spustí skript AutoIT (zde, což je fileupload.exe).
Když program provede tento řádek, projde souborem fileupload.exe, kde se provede kód AutoIT, jak je znázorněno níže:
ControlFocus('File Upload','','Edit1') ControlSetText('File Upload','','Edit1','C:UsersChaitDesktopautoitdata_file.csv') ControlClick('File Upload','','Button1')
Tady,
- ControlFocus: Tato metoda nastaví vstupní fokus na textové pole „název souboru“.
- ControlSetText: Tato metoda definuje cestu k souboru. Soubor, který nahrajeme do textového pole „název souboru“ - jeho cesta je vysledována.
- ControlClick: Tato metoda se používá ke kliknutí na tlačítko „Otevřít“ v okně pro nahrávání souborů.
Výstup výše uvedeného kódu je uveden níže:
(obraz zdroj )
# 3) S pomocí třídy robotů
Jak víme, roboti pomáhají při správě různých činností, jako je provádění některých úkolů, manipulace s funkcemi klávesnice, funkcí myši a mnoho dalších. Zde budeme rozumět určitým funkcím, které jsou užitečné při ovládání klávesnice a myši, když je aplikace testována pomocí Selen .
KeyEvents nebo metody pro implementaci třídy robota
V implementaci třídy Robot existuje několik metod pro provádění testovacích skriptů.
Ty jsou uvedeny níže:
- KeyPress (): Tato metoda se nazývá, když chceme stisknout libovolnou klávesu.
-
- Příklad: robot.keyPress (KeyEvent. UK_ENTER );
- KeyRelease (): Tato metoda se používá k uvolnění stisknuté klávesy.
- Příklad: robot.keyRelease (KeyEvent. UK_ENTER );
- MouseMove (): Používá se, když je potřeba pohybovat kurzorem myši nad souřadnicemi „X“ a „Y“.
- Příklad: robot.mouseMove ( Coordinates.get.X () , Coordinates.get.Y () );
- Myš Press (): Tato metoda se nazývá, když chceme stisknout levé tlačítko myši.
- Příklad: robot.mousePress (InputEvent. BUTTON_MASK );
- MouseRelease (): Tato metoda se používá k uvolnění stisknutého tlačítka myši.
- Příklad: robot.mouseRelease (InputEvent. BUTTON_DOWN_MASK );
Výhody třídy robotů
- Nahrávání souborů pomocí třídy robota je snadné.
- Zpracovává funkce klávesnice a myši.
- Je také možné zpracovávat vyskakovací okna.
Nevýhody třídy robotů
- Událost klávesnice nebo myši by fungovala pouze na aktuální instanci okna.
- Během provádění události robota, pokud je spuštění kódu přesunuto do jiného okna, zůstává událost myši nebo klávesnice v předchozím okně.
- Přepínání mezi různými okny není snadné.
Implementace kódu pro nahrávání souborů pomocí třídy robota:
pl sql otázky k pohovoru na 5 let zkušeností
Z tohoto důvodu budeme uvažovat o příkladu Grammarly.com webová stránka. Níže je implementační kód pro zpracování nahrávání souborů v selenu pomocí třídy 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 výše uvedeného kódu selenu je uveden níže:
Soubory lze tedy nahrávat pomocí třídy Robot, kde vidíme použití vstupních událostí, jako je stisknutí klávesy a uvolnění klávesy pro kopírování, vkládání, zadávání atd.
Příklady nahrávání souborů
Podívejme se na několik příkladů nahrávání souborů, které se provádějí pomocí selenu:
# 1) Účet Gmail
V účtu Gmail můžete při zasílání e-mailů někomu zaslat přílohu, tj. Souborový dokument, který může být jakéhokoli typu: doc, text, csv, obrázek, pdf atd. Nahrávání souborů zde přichází do kontextu.
Další podrobnosti naleznete níže na snímku obrazovky nahrávání souboru.
# 2) Nahrání dokumentu pro ověření
U registračních stránek nebo formulářů obvykle potřebujeme nahrát dokumenty k ověření.
Další vysvětlení najdete na následujícím obrázku:
ID_Proof
Reg_form
U různých takových ověření, jako je ověření důkazu, ověření adresy, doklad o vzdělání atd., Je třeba nahrát konkrétní dokumenty.
Závěr
V tomto výukovém programu jsme tedy viděli nahrávání souborů na stránku HTML. Také jsme viděli různé metody pro zpracování nahrávání souborů v selenu (což zahrnuje metody, jako je použití sendKeys, použití AutoIT a použití třídy Robot). Také jsme pochopili implementaci kódu pro zpracování nahrávání souborů v selenu pro každou z těchto metod a nakonec jsme se podívali na několik příkladů.
Autor Bio - Tento článek napsal Sonali Satpute, kvalifikovaný B.E. (počítač) od společností MITCOE, Pune, Professional Tester softwaru a Content Writer.
=> Přečtěte si úplného průvodce selenem
Doporučené čtení
- Jak zacházet s Windows Pop Up v selenu pomocí AutoIT
- Jak vybrat rádiová tlačítka v selenu WebDriver?
- Jak zaškrtnout políčko selenu s příklady
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- Úvod do Selenium WebDriver - Selenium Tutorial # 8
- Výukový program ChromeDriver Selenium: Testy selenového webdriveru v prohlížeči Chrome
- Robot Class in Selenium WebDriver With Java
- Výukový program AutoIt - Stažení, instalace a základní skript AutoIt