how upload file using selenium webdriver 3 methods
Lær forskjellige metoder for håndtering av filopplasting i Selenium med kodeeksempler:
Filopplasting utføres når det er behov for å laste opp en fil eller et dokument på et bestemt nettsted, for eksempel skjemaer, registreringssider, dokumentopplastere osv.
Last opp en filprosess inkluderer å bla gjennom en fil fra ønsket sted eller fra datamaskinen din og laste den opp til nettstedet.
=> Sjekk ALLE Selen-opplæringsprogrammer her
Hva du vil lære:
Selenium Last opp fil
Overlevering av filopplasting i Selen kan lette menneskelig arbeid og kan gjøres ganske enkelt ved å bruke sendKeys () metode. En melding vises etter at du har lastet opp en fil som bekrefter om filen lastes opp. Det er mange flere slike automatiseringsmetoder for filopplasting.
Emner som dekkes i denne opplæringen inkluderer filopplasting i HTML, metoder for å håndtere filopplasting i Selenium (som inkluderer metoder, nemlig: bruk sendKeys, deretter bruk AutoIT og Robot-klasse).
Denne opplæringen forklarer også implementeringen av kode for håndtering av filopplasting ved hjelp av disse metodene i Selenium, hvoretter vi vil se noen få eksempler der filopplasting utføres ved hjelp av Selenium.
Filopplasting i HTML
Nedenfor implementering av kode forklarer filopplasting på HTML-side. HTML-koden viser hvordan opplastingsoperasjonen kan utføres ved først å klikke på Velg Fil knappen for å bla gjennom filen som skal lastes opp, og klikk deretter på Last opp fil alternativet, hvoretter vi kan se at filen lastes opp.
Ovenstående bilde består av den HTML-laget siden og nedenfor er HTML-koden for det samme. La oss se raskt på HTML-koden.
File Upload File Uploading (Upload the image file)
Select file to upload:
Dermed når du laster opp ønsket fil ved å klikke på Last opp fil alternativet, vises nedenstående side (bilde) (dvs. den opplastede bildefilen vises) som bekrefter at filen som er valgt å laste opp, er lastet opp.
(bilde kilde )
Metoder for å laste opp filer i selen
La oss se noen metoder for håndtering av filopplasting og også implementering av kode for det samme.
Filer som lastes opp i Selen kan gjøres med metodene nedenfor:
- Bruker sendKeys-metoden
- Bruke AutoIT-verktøyet
- Ved hjelp av Robot Class
# 1) Bruker sendKeys-metoden
Den mest grunnleggende måten å laste opp filer i Selen på er å bruke sendKeys-metoden. Det er en innebygd funksjon for filopplasting 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');
La oss forstå kodeimplementeringen for teknikken ovenfor:
For å laste opp filer ved hjelp av denne metoden, må vi først inspisere elementet eller knappen som er gitt for filopplasting, og deretter bruke sendKeys, bla gjennom stien der den faktiske filen som skal lastes opp, oppbevares. Plasser banen sammen med filnavnet i sendKeys slik at programmet navigeres til den nevnte banen for å hente filen.
Etter dette, klikk på lagre eller send inn-knappen, og filen blir sett opp. Noen ganger mottar vi også en melding om at filen lastes opp.
Kodeimplementering ved hjelp av sendKeys-metoden:
konvertere youtube til mp3 lenger enn 30 minutter
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'); } }
Dermed, for å laste opp filer ved hjelp av sendKeys-alternativet, må vi ganske enkelt bruke den innebygde sendKeys-metoden for å laste opp den nødvendige filen.
Dette er utdata fra ovennevnte kode (for Monster.com ) der vi kan se en melding som: “Filen ble lastet opp vellykket” på å laste opp filen i selen webdriver ved hjelp av sendKeys-metoden.
# 2) Bruke AutoIT
AutoIT er et freeware og et open source automatiseringsverktøy for Windows-operativsystemet. Den er skrevet på et BASIC skripts datamaskinspråk for automatisering av Microsoft Windows brukergrensesnitt. Den simulerer enhver kombinasjon av tastetrykk, musebevegelser og manipulering av vinduer.
Fremgangsmåte for å laste ned og installere AutoIT-verktøyet:
- Åpen lenke
- Gå til AUTOIT -> LAST NED. Last ned den nyeste AutoIT.
- Fortsett med AutoIT installasjon og oppsett (neste -> enig -> valg av 32/64 bit -> valg av filinstallasjonsplassering -> Fullfør.
- Det er to oppsettfiler: a) AutoIt versjon 3 og b) SciTE auto 3.
- Når installasjonen er fullført, åpner du AutoIT-redigereren.
- Gå til stedet der oppsettfiler er lagret, klikk på 'SciTE.exe' fil, og AutoIT-redigereren åpnes. Se skjermbildet nedenfor for AutoIT editor.
AutoIT_Editor:
La oss forstå det kort hvordan du bruker dette verktøyet:
- Åpne AutoIT-redigereren.
- Vi må skrive en enkel kode i AutoIT-editoren, som kreves for filopplasting (navnet på filen som skal lastes opp, vil bli nevnt i koden).
- Lukk nå redigeringsprogrammet og høyreklikk på det, du vil se kompilasjonsskriptalternativet. Velg kompilasjonsskript (x64) -alternativ for 64-biters maskin og gå med kompileringsskript (x86) for en 32-bits maskin.
- Så snart trinnet ovenfor er fullført, opprettes en .exe-fil, og denne filen vil bli nevnt i selen-formørkelseskoden. Etter kompilering, som vist bildet nedenfor ‘Fileupload.exe’ filen blir opprettet. Nå kan vi bruke denne filen i Selenium-driver for manus.
Saved_files:
Bildet nedenfor hjelper oss med å forstå hvordan filen som skal lastes opp som er form.csv lastes opp ved å utføre selen eclipse script som kjører fileupload.exe-fil.
>> Besøk dette side for mer informasjon om AutoIT.
Vi vil se implementeringen av denne metoden senere i denne opplæringen.
Fordeler med AutoIT:
- AutoIT er et open source-verktøy som vi ikke trenger å betale for.
- Små frittstående kjørbare filer kan opprettes ved hjelp av AutoIT.
- Den støtter lett å spille inn eller spille av skripting.
- Vi kan enkelt feilsøke koden med konsoll skriv kommando .
- Det har muligheten til å opprette forskjellige GUIer og gjenkjenner nesten alle grunnleggende Windows-kontroller.
- Det er enkelt og brukervennlig.
Ulemper med AutoIT:
- Det fungerer bare i Windows-operativsystemet
- Ettersom grunnleggende kodingsprinsipper er kunnskap et must, viser det seg å være et flott verktøy for profesjonelle, men kan være litt komplisert for nybegynnere.
- AutoIT har foreløpig ikke Java-støtte tilgjengelig.
- Brukerne må importere separate biblioteker mens de bruker forskjellige forhåndsdefinerte verktøyfunksjoner.
La oss nå gå til implementeringskoden for filopplasting ved hjelp av AutoIT:
Her vil vi se hvordan vi kan håndtere filopplasting ved hjelp av AutoIT i Selenium. For dette la oss se på eksemplet på OrangeHRM-nettstedet.
Kodeimplementering for håndtering av filopplasting i Selen ved hjelp av 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 vist i koden ovenfor, er følgende linje veldig viktig da den viser bruken av AutoIT:
Runtime.getRuntime (). Exec ('C: \ brukere \ Chait \ Desktop \ autoit \ fileupload.exe');
Her,
- Kjøretid : Det lar skriptet grensesnitt med miljøet der skriptet kjører.
- getRuntime (): Den brukes til å få den aktuelle kjøretiden knyttet til prosessen.
- exec (): Den kjører AutoIT-skriptet (her, som er fileupload.exe).
Når programmet kjører denne linjen, går den gjennom fileupload.exe-filen der AutoIT-koden kjøres som vist nedenfor:
ControlFocus('File Upload','','Edit1') ControlSetText('File Upload','','Edit1','C:UsersChaitDesktopautoitdata_file.csv') ControlClick('File Upload','','Button1')
Her,
hvordan lage et prosjekt i formørkelse
- ControlFocus: Denne metoden setter inndatafokus til 'filnavn' tekstboks.
- ControlSetText: Denne metoden definerer banen til filen. Filen som vi skal laste opp i tekstfeltet ‘filnavn’ - stien blir sporet.
- ControlClick: Denne metoden brukes til å klikke på 'Åpne' -knappen i vinduet for filopplasting.
Utgangen for ovennevnte kode er vist nedenfor:
(bilde kilde )
# 3) Ved hjelp av robotklasse
Roboter som vi vet, hjelper til med å administrere forskjellige aktiviteter, for eksempel å utføre noen oppgaver, håndtere tastaturfunksjonene, musefunksjonene og mange flere. Her vil vi forstå visse funksjoner som er nyttige for å kontrollere tastaturet og musen mens et program blir testet med Selen .
hvordan du sender et ddos-angrep
Nøkkelbegivenheter eller metoder for implementering av robotklassen
I implementeringen av Robot-klassen er det noen få metoder for utførelse av testskript.
Disse er nevnt nedenfor:
- Tastetrykk(): Denne metoden kalles når vi vil trykke på en hvilken som helst tast.
-
- Eksempel: robot.keyPress (KeyEvent. VK_ENTER );
- KeyRelease (): Denne metoden brukes til å slippe den trykkte tasten.
- Eksempel: robot.keyRelease (KeyEvent. VK_ENTER );
- MouseMove (): Brukes når det er behov for å flytte musepekeren over 'X' og 'Y' koordinatene.
- Eksempel: robot.mouseMove ( coordinates.get.X () , coordinates.get.Y () );
- MousePress (): Denne metoden kalles når vi vil trykke på venstre museknapp.
- Eksempel: robot.mousePress (InputEvent. BUTTON_MASK );
- MouseRelease (): Denne metoden brukes til å slippe den trykkte museknappen.
- Eksempel: robot.mouseRelease (InputEvent. BUTTON_DOWN_MASK );
Fordeler med robotklasse
- Filopplasting ved hjelp av robotklassen er enkelt.
- Den håndterer tastatur- og musefunksjonene.
- Håndtering av popup-vinduer er også mulig.
Ulemper ved robotklasse
- Tastatur- eller musearrangement fungerer bare på den nåværende forekomsten av vinduet.
- Når kjøringen av koden flyttes til et annet vindu mens du utfører en robothendelse, forblir mus- eller tastaturhendelsen fortsatt i det forrige vinduet.
- Det er ikke lett å bytte mellom forskjellige vinduer.
Implementering av kode for filopplasting ved hjelp av robotklasse:
For dette vil vi vurdere eksemplet på Grammarly.com nettsted. Nedenfor er implementeringskoden for håndtering av filopplasting i Selenium ved hjelp av robotklasse.
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); } }
Utgangen for ovennevnte selenkode er vist nedenfor:
Dermed kan filer lastes opp ved hjelp av en robotklasse, hvor vi kan se bruken av inngangshendelser som tastetrykk og tastutgivelse for kopiering, liming, innføring osv.
Eksempler på filopplasting
La oss se noen eksempler på filopplasting som utføres ved hjelp av Selenium:
# 1) Gmail-konto
I en Gmail-konto, mens du sender e-post til noen, kan du inkludere et vedlegg, dvs. et fildokument som kan være av hvilken som helst type: doc, tekst, csv, image, pdf osv. Her kommer filopplasting i sammenheng.
For mer informasjon, se under skjermbildet av filopplastingen.
# 2) Dokumentopplasting for bekreftelse
Vanligvis må vi laste opp dokumenter for bekreftelse for registreringssider eller skjemaer.
Se bildet nedenfor for mer avklaring:
ID_Proof
Reg_form
For forskjellige slike verifiseringer som bevisverifisering, adresseverifisering, utdanningssikkerhet osv. Må spesifikke dokumenter lastes opp.
Konklusjon
Dermed har vi i denne veiledningen sett filopplasting på HTML-siden. Vi har også sett ulike metoder for å håndtere filopplasting i Selenium (som inkluderer metoder som bruk av sendKeys, bruk av AutoIT og bruk av robotklasse). Vi forsto også implementeringen av kode for håndtering av filopplasting i Selen for hver av disse metodene og til slutt så på noen få eksempler.
Forfatter Bio - Denne artikkelen ble skrevet av Sonali Satpute, en kvalifisert B.E. (datamaskin) fra MITCOE, Pune, Professional Software Tester og Content Writer.
=> Les gjennom hele Selen-guiden
Anbefalt lesing
- Hvordan håndtere Windows Pop Up i Selen ved hjelp av AutoIT
- Hvordan velge radioknapper i Selen WebDriver?
- Hvordan velge avkrysningsruten i selen med eksempler
- Agurk Selen Tutorial: Agurk Java Selen WebDriver Integration
- Introduksjon til Selenium WebDriver - Selenium Tutorial # 8
- ChromeDriver Selenium Tutorial: Selenium Webdriver Tests on Chrome
- Robotklasse i Selen WebDriver med Java
- AutoIt Tutorial - AutoIt Last ned, installer og grunnleggende AutoIt-skript