how upload file using selenium webdriver 3 methods
Lær forskellige metoder til håndtering af filupload i Selenium med kodeeksempler:
Filoverførsel udføres, når der er behov for at uploade enhver fil eller et dokument på et bestemt websted, såsom formularer, registreringssider, uploadere osv.
Upload af en filproces inkluderer browsing af en fil fra den ønskede placering eller fra din computer og upload af den til webstedet.
=> Tjek ALLE Selen-vejledninger her
Hvad du lærer:
Selen-uploadfil
Aflevering af upload af filer i Selen kan lette menneskeligt arbejde og kan gøres simpelthen ved hjælp af sendKeys () metode. En meddelelse vises efter upload af en fil, der bekræfter, om filen uploades med succes. Der er mange flere sådanne automatiseringsmetoder til filupload.
Emner, der er omfattet af denne vejledning, inkluderer filupload i HTML, metoder til håndtering af filupload i Selenium (som vil omfatte metoder, nemlig: brug af sendKeys, derefter brug af AutoIT og Robot-klasse).
Denne vejledning forklarer også implementeringen af kode til håndtering af filupload ved hjælp af disse metoder i Selenium, hvorefter vi vil se et par eksempler, hvor filupload udføres ved hjælp af Selenium.
Fil upload i HTML
Nedenstående kodeimplementering forklarer filuploading på HTML-siden. HTML-koden viser, hvordan uploadoperationen kan udføres ved først at klikke på Vælg fil knap for at gennemse den fil, der skal uploades, og klik derefter på Upload fil mulighed, hvorefter vi kan se, at filen uploades med succes.
Ovenstående billede består af den HTML-oprettede side, og nedenunder er HTML-koden for det samme. Lad os kigge hurtigt på HTML-koden.
File Upload File Uploading (Upload the image file)
Select file to upload:
Således ved upload af den ønskede fil ved at klikke på Upload fil valgmulighed, vises nedenstående side (billede) (dvs. den uploadede billedfil vises), som bekræfter, at den valgte fil, der skal uploades, er uploadet med succes.
(billede kilde )
Metoder til at uploade filer i selen
Lad os se nogle metoder til håndtering af filupload og også implementering af kode til det samme.
Filer, der uploades i Selen, kan gøres med nedenstående metoder:
- Brug af sendKeys-metoden
- Brug af AutoIT-værktøjet
- Ved hjælp af Robot Class
# 1) Brug af sendKeys-metoden
Den mest basale måde at uploade filer i Selen på er ved hjælp af sendKeys-metoden. Det er en indbygget funktion til upload af filer i Selenium.
Syntaksen er som nedenfor:
WebElement upload_file = driver.findElement(By.xpath('//input(@id='file_up')')); upload_file.sendKeys('C:/Users/Sonali/Desktop/upload.png');
Lad os forstå implementeringen af koden til ovenstående teknik:
For at uploade filer ved hjælp af denne metode er vi først nødt til at inspicere elementet eller knappen, der er angivet til filupload, og derefter ved hjælp af sendKeys gennemse stien, hvor den faktiske fil, der skal uploades, opbevares. Placer stien sammen med filnavnet i sendKeys, så programmet navigeres til den nævnte sti for at hente filen.
Herefter skal du klikke på knappen Gem eller send og filen vil blive uploadet. Til tider modtager vi også en besked om, at filen uploades med succes.
Kodeimplementering ved hjælp af sendKeys-metoden:
sammenlign to filer linje for linje
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'); } }
Således for at uploade filer ved hjælp af sendKeys-indstillingen er vi simpelthen nødt til at bruge den indbyggede sendKeys-metode til at uploade den krævede fil med succes.
Dette er output fra ovenstående kode (for Monster.com ) hvor vi kan se en besked vises som: 'Filen blev uploadet med succes' om upload af filen i selen webdriver ved hjælp af sendKeys-metoden.
# 2) Brug af AutoIT
AutoIT er et freeware og et open source-automatiseringsværktøj til Windows-operativsystemet. Det er skrevet på et BASIC scripting-computersprog til automatisering af Microsoft Windows-brugergrænsefladen. Det simulerer enhver kombination af tastetryk, musebevægelser og manipulation af windows-kontrol.
Trin til download og installation af AutoIT-værktøjet:
- Åben link
- Gå til AUTOIT -> DOWNLOADS. Download den nyeste AutoIT.
- Fortsæt med AutoIT installation og opsætning (næste -> enig -> valg af 32/64 bit -> valg af filinstallationsplacering -> Udfør.
- Der er 2 installationsfiler: a) AutoIt version 3 og b) SciTE auto 3.
- Når installationen er færdig, skal du åbne AutoIT editor.
- Gå til det sted, hvor installationsfiler er gemt, klik på 'SciTE.exe' fil, og AutoIT-editoren åbnes. Se nedenstående skærmbillede for AutoIT-editor.
AutoIT_Editor:
Lad os nu forstå det kort hvordan man bruger dette værktøj:
- Åbn AutoIT-editoren.
- Vi er nødt til at skrive en simpel kode i AutoIT-editoren, der kræves til filupload (navnet på filen, der skal uploades, vil blive nævnt i koden).
- Luk nu editoren og højreklik på den, du vil se kompilering script mulighed. Vælg kompilering script (x64) mulighed for 64 bit maskine og gå med kompilere script (x86) til en 32-bit maskine.
- Så snart ovenstående trin er afsluttet, oprettes en .exe-fil, og denne fil vil blive nævnt i vores selen-formørkelseskode. Efter kompilering, som vist nedenstående billede 'Fileupload.exe' fil oprettes. Nu kan vi gøre brug af denne fil i Selenium-webdriver scriptet.
Saved_files:
Billedet nedenfor hjælper os med at forstå, hvordan den fil, der skal uploades, og som er form.csv, uploades ved at udføre selen-eclipse-scriptet, der kører fileupload.exe-filen.
bedste gratis anti spyware windows 10
>> Besøg dette side for flere detaljer om AutoIT.
Vi vil se implementeringen af denne metode senere i denne vejledning.
Fordele ved AutoIT:
- AutoIT er et open source-værktøj, som vi ikke behøver at betale for.
- Små uafhængige eksekverbare filer kan oprettes ved hjælp af AutoIT.
- Det understøtter let at optage eller afspille scripting.
- Vi kan nemt fejle koden med konsol skrive kommando .
- Det har mulighed for at oprette forskellige GUI'er og genkender næsten alle grundlæggende Windows-kontroller.
- Det er enkelt og brugervenligt.
Ulemper ved AutoIT:
- Det fungerer kun i Windows-operativsystemet
- Da grundlæggende kodningsprincipper viden er et must, viser det sig at være et godt værktøj for professionelle, men kan være lidt kompliceret for begyndere.
- AutoIT har hidtil ikke Java-support tilgængelig.
- Brugerne skal importere separate biblioteker, mens de bruger forskellige foruddefinerede hjælpefunktioner.
Lad os nu gå til implementeringskoden for File Upload ved hjælp af AutoIT:
Her vil vi se, hvordan vi kan håndtere upload af filer ved hjælp af AutoIT i Selenium. Lad os overveje eksemplet på OrangeHRM-webstedet.
Kodeimplementering til håndtering af filupload i Selenium ved hjælp af 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 } }
Som det ses i ovenstående kode, er følgende linje meget vigtig, da den viser brugen af AutoIT:
Runtime.getRuntime (). Exec (“C: \ Brugere \ Chait \ Desktop \ autoit \ fileupload.exe”);
Her,
- Kørselstid : Det giver scriptet mulighed for at grænseflade med det miljø, hvor scriptet kører.
- getRuntime (): Det bruges til at få den aktuelle kørselstid, der er knyttet til processen.
- exec (): Det udfører AutoIT-scriptet (her, som er fileupload.exe).
Når programmet udfører denne linje, går det gennem filenupload.exe-filen, hvor AutoIT-koden udføres som vist nedenfor:
ControlFocus('File Upload','','Edit1') ControlSetText('File Upload','','Edit1','C:UsersChaitDesktopautoitdata_file.csv') ControlClick('File Upload','','Button1')
Her,
- ControlFocus: Denne metode indstiller inputfokus til 'filnavn' tekstfelt.
- ControlSetText: Denne metode definerer stien til filen. Den fil, som vi uploader i tekstfeltet 'filnavn' - dens sti spores.
- ControlClick: Denne metode bruges til at klikke på knappen 'Åbn' i filoverførselsvinduet.
Outputtet for ovenstående kode vises nedenfor:
(billede kilde )
# 3) Ved hjælp af robotklasse
Robotter, som vi kender, hjælper med at styre forskellige aktiviteter såsom at udføre nogle opgaver, håndtere tastaturfunktionerne, musefunktionerne og mange flere. Her vil vi forstå visse funktioner, der er nyttige til at kontrollere tastaturet og musen, mens en applikation testes ved hjælp af Selen .
Nøglebegivenheder eller metoder til implementering af robotklassen
I implementeringen af Robot-klassen er der et par metoder til udførelse af testskripter.
Disse er nævnt nedenfor:
- Tastetryk(): Denne metode kaldes, når vi vil trykke på en vilkårlig tast.
-
- Eksempel: robot.keyPress (KeyEvent. UK_ENTER );
- KeyRelease (): Denne metode bruges til at frigive den trykte tast.
- Eksempel: robot.keyRelease (KeyEvent. UK_ENTER );
- MouseMove (): Bruges, når der er behov for at flytte musemarkøren over 'X' og 'Y' koordinater.
- Eksempel: robot.mouseMove ( coordinates.get.X () , koordinater.get.Y () );
- MousePress (): Denne metode kaldes, når vi vil trykke på venstre museknap.
- Eksempel: robot.mousePress (InputEvent. BUTTON_MASK );
- MouseRelease (): Denne metode bruges til at frigøre den trykte museknap.
- Eksempel: robot.mouseRelease (InputEvent. BUTTON_DOWN_MASK );
Fordele ved robotklasse
- Upload af filer ved hjælp af robotklassen er let.
- Det håndterer tastatur- og musefunktionerne.
- Håndtering af pop op-vinduer er også mulig.
Ulemper ved robotklasse
- Tastatur eller mus begivenhed fungerer kun i den aktuelle forekomst af vinduet.
- Hvis kodeudførelsen flyttes til et andet vindue under udførelse af en robothændelse, forbliver mus- eller tastaturhændelsen stadig i det forrige vindue.
- Det er ikke let at skifte mellem forskellige vinduer.
Implementering af kode til filupload ved hjælp af robotklasse:
Til dette vil vi overveje eksemplet på Grammarly.com internet side. Nedenfor er implementeringskoden til håndtering af filupload i Selenium ved hjælp af robotklassen.
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); } }
Outputtet for ovenstående selenkode er vist nedenfor:
Således kan filer uploades ved hjælp af en robotklasse, hvor vi kan se brugen af inputhændelser som tastetryk og frigivelse af tast til kopiering, indsættelse, indtastning osv.
Eksempler på filupload
Lad os se nogle få eksempler på filupload, der udføres ved hjælp af Selenium:
# 1) Gmail-konto
Mens du sender en e-mail til en Gmail-konto, kan du medtage en vedhæftet fil, dvs. et fildokument, der kan være af enhver type: doc, tekst, csv, billede, pdf osv. Her kommer filupload til kontekst.
hvad er de bedste downloadere af musik
For flere detaljer se nedenfor screenshotet af filuploadet.
# 2) Dokumentupload til bekræftelse
For registreringssider eller formularer er vi normalt nødt til at uploade dokumenter til verifikation.
Se nedenstående billede for mere præcisering:
ID_Proof
Reg_form
For forskellige sådanne verifikationer, såsom bevisbekræftelse, adresseverifikation, uddannelsesbevis osv., Skal specifikke dokumenter uploades.
Konklusion
Således har vi i denne vejledning set upload af filer på HTML-siden. Vi har også set forskellige metoder til håndtering af filupload i Selenium (som inkluderer metoder såsom brug af sendKeys, brug af AutoIT og brug af robotklasse). Vi forstod også implementeringen af kode til håndtering af filupload i Selen for hver af disse metoder og kiggede til sidst på et par eksempler.
Forfatter Bio - Denne artikel er skrevet af Sonali Satpute, en kvalificeret B.E. (computer) fra MITCOE, Pune, Professional Software Tester og Content Writer.
=> Læs gennem den komplette selen-guide
Anbefalet læsning
- Sådan håndteres Windows Pop Up i Selen ved hjælp af AutoIT
- Sådan vælges radioknapper i Selen WebDriver?
- Sådan markeres afkrydsningsfeltet i selen med eksempler
- Agurk Selen Tutorial: Agurk Java Selen WebDriver Integration
- Introduktion til Selen WebDriver - Selen Tutorial # 8
- ChromeDriver Selen Tutorial: Selen Webdriver Tests på Chrome
- Robotklasse i Selen WebDriver med Java
- AutoIt-vejledning - AutoIt-download, installation og grundlæggende AutoIt-script