how upload file using selenium webdriver 3 methods
Aflați diferite metode pentru gestionarea încărcării fișierelor în Selenium cu exemple de cod:
Încărcarea fișierelor se efectuează atunci când este nevoie să încărcați orice fișier sau document pe un anumit site web, cum ar fi formulare, pagini de înregistrare, încărcătoare de documente etc.
Încărcarea unui proces de fișier include răsfoirea unui fișier din locația dorită sau de pe computerul dvs. și încărcarea acestuia pe site.
=> Verificați TOATE Tutorialele Selenium aici
Ce veți învăța:
Selenium Upload File
Transmiterea încărcării fișierelor în Selenium poate ușura munca umană și se poate face pur și simplu folosind sendKeys () metodă. Un mesaj este afișat după încărcarea unui fișier care confirmă dacă fișierul este încărcat cu succes. Există mult mai multe astfel de metode de automatizare pentru încărcarea fișierelor.
Subiectele acoperite în acest tutorial includ încărcarea fișierelor în HTML, metode pentru gestionarea încărcării fișierelor în Selenium (care ar include metode și anume: utilizarea sendKeys, apoi utilizarea clasei AutoIT și Robot).
Acest tutorial explică, de asemenea, implementarea codului pentru gestionarea încărcării fișierelor folosind aceste metode în Selenium, după care vom vedea câteva exemple în care încărcarea fișierelor se efectuează cu ajutorul Selenium.
Încărcare fișier în HTML
Implementarea codului de mai jos explică operația de încărcare a fișierelor pe pagina HTML. Codul HTML arată cum poate fi efectuată operațiunea de încărcare făcând mai întâi clic pe Alege fișierul butonul pentru a răsfoi fișierul de încărcat și apoi faceți clic pe Incarca fisier opțiune, după care putem vedea că fișierul este încărcat cu succes.
Imaginea de mai sus este formată din pagina HTML creată, iar mai jos este codul HTML pentru aceeași. Să aruncăm o privire rapidă asupra codului HTML.
File Upload File Uploading (Upload the image file)
Select file to upload:
Astfel, la încărcarea fișierului dorit, făcând clic pe Incarca fisier opțiunea, pagina de mai jos (imaginea) este afișată (adică este afișat fișierul imagine încărcat) care confirmă că fișierul ales pentru încărcare a fost încărcat cu succes.
(imagine sursă )
Metode de încărcare a fișierelor în seleniu
Să vedem câteva metode pentru gestionarea încărcării fișierelor și, de asemenea, implementarea codului pentru același lucru.
Încărcarea fișierelor în seleniu se poate face cu metodele de mai jos:
- Folosind metoda sendKeys
- Folosind instrumentul AutoIT
- Cu ajutorul Robot Class
# 1) Folosind metoda sendKeys
Cel mai simplu mod de a încărca fișiere în Selenium este utilizarea metodei sendKeys. Este o funcție încorporată pentru încărcarea fișierelor în Selenium.
Sintaxa este următoarea:
WebElement upload_file = driver.findElement(By.xpath('//input(@id='file_up')')); upload_file.sendKeys('C:/Users/Sonali/Desktop/upload.png');
Să înțelegem implementarea codului pentru tehnica de mai sus:
Pentru încărcarea fișierelor folosind această metodă, trebuie mai întâi să inspectăm elementul sau butonul furnizat pentru încărcarea fișierului, apoi folosind sendKeys, răsfoiți calea în care este păstrat fișierul real de încărcat. Plasați calea împreună cu numele fișierului în sendKeys, astfel încât programul să fie navigat la calea menționată pentru a prelua fișierul.
După aceasta, faceți clic pe butonul de salvare sau trimitere și fișierul va fi văzut încărcat. Uneori, primim și un mesaj că fișierul este încărcat cu succes.
Implementarea codului folosind metoda sendKeys:
ce este testarea automatizării în testarea software-ului
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'); } }
Astfel, pentru încărcarea fișierelor folosind opțiunea sendKeys, trebuie pur și simplu să folosim metoda sendKeys încorporată pentru a încărca cu succes fișierul necesar.
Aceasta este rezultatul codului de mai sus (pentru Monster.com ) unde putem vedea un mesaj afișat ca: 'Fisier uploadat cu succes' la încărcarea fișierului în driverul web seleniu folosind metoda sendKeys.
# 2) Utilizarea AutoIT
AutoIT este un software freeware și un instrument de automatizare open-source pentru sistemul de operare Windows. Este scris într-un limbaj de bază de scripting pentru computer pentru automatizarea interfeței de utilizator Microsoft Windows. Simulează orice combinație de apăsări de taste, mișcări ale mouse-ului și manipularea controlului ferestrelor.
Pași pentru descărcarea și instalarea instrumentului AutoIT:
- Deschis legătură
- Accesați AUTOIT -> DESCĂRCĂRI. Descărcați cea mai recentă versiune AutoIT.
- Continuați cu instalarea și configurarea AutoIT (următoare -> de acord -> selecție pe 32/64 biți -> selecție locație instalare fișier -> Finalizare.
- Există 2 fișiere de configurare: a) AutoIt versiunea 3 și b) SciTE auto 3.
- După instalare, deschideți editorul AutoIT.
- Accesați locația în care sunt salvate fișierele de configurare, faceți clic pe fișierul „SciTE.exe” și se deschide editorul AutoIT. Vă rugăm să consultați captura de ecran de mai jos pentru editorul AutoIT.
AutoIT_Editor:
Acum, să înțelegem pe scurt cum să utilizați acest instrument:
- Deschideți editorul AutoIT.
- Trebuie să scriem un cod simplu în editorul AutoIT, necesar pentru operația de încărcare a fișierelor (numele fișierului care urmează să fie încărcat, va fi menționat în cod).
- Acum închideți editorul și faceți clic dreapta pe el, veți vedea opțiunea de compilare a scriptului. Alegeți opțiunea de compilare script (x64) pentru computerul pe 64 de biți și mergeți cu scriptul de compilare (x86) pentru un computer pe 32 de biți.
- De îndată ce pasul de mai sus este finalizat, este creat un fișier .exe și acest fișier va fi menționat în codul nostru de eclipsă de seleniu. După compilare, după cum se vede în imaginea de mai jos „Fileupload.exe” fișierul este creat. Acum putem folosi acest fișier în scriptul driverului web Selenium.
Fișiere salvate:
Imaginea de mai jos ne ajută să înțelegem cum este încărcat fișierul care urmează să fie încărcat form.csv executând scriptul de seleniu eclipsă care rulează fișierul fileupload.exe.
>> Vizitează acest lucru pagină pentru mai multe detalii despre AutoIT.
c # întrebări și răspunsuri la interviu pentru cei mai noi
Vom vedea implementarea acestei metode mai târziu în acest tutorial.
Avantajele AutoIT:
- AutoIT este un instrument open-source pentru care nu trebuie să plătim.
- Executabile mici de sine stătătoare pot fi create folosind AutoIT.
- Acceptă scripturi ușor de înregistrat sau redat.
- Putem depana codul cu ușurință comanda de scriere consolă .
- Are opțiunea de a crea diferite interfețe grafice și recunoaște aproape toate comenzile Windows de bază.
- Este simplu și ușor de utilizat.
Dezavantaje ale AutoIT:
- Funcționează numai în sistemul de operare Windows
- Deoarece cunoașterea principiilor fundamentale de codificare este o necesitate, se dovedește a fi un instrument excelent pentru profesioniști, dar ar putea fi un pic complicat pentru începători.
- AutoIT nu are suport Java disponibil până acum.
- Utilizatorii trebuie să importe biblioteci separate în timp ce utilizează diferite funcții de utilitate predefinite.
Acum, să trecem la codul de implementare a Încărcării fișierelor folosind AutoIT:
Aici, vom vedea cum putem gestiona încărcarea fișierelor folosind AutoIT în Selenium. Pentru aceasta să luăm în considerare exemplul site-ului OrangeHRM.
Implementarea codului pentru gestionarea încărcării fișierelor în Selenium folosind 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 } }
După cum se vede în codul de mai sus, următoarea linie este foarte importantă, deoarece arată utilizarea AutoIT:
Runtime.getRuntime (). Exec („C: \ Users \ Chait \ Desktop \ autoit \ fileupload.exe”);
Aici,
- Runtime : Permite scriptului să interfețe cu mediul în care rulează scriptul.
- getRuntime (): Este folosit pentru a obține timpul de execuție curent asociat procesului.
- exec (): Execută scriptul AutoIT (aici, care este fileupload.exe).
Când programul execută această linie, acesta trece prin fișierul fileupload.exe unde se execută codul AutoIT așa cum se arată mai jos:
ControlFocus('File Upload','','Edit1') ControlSetText('File Upload','','Edit1','C:UsersChaitDesktopautoitdata_file.csv') ControlClick('File Upload','','Button1')
Aici,
- ControlFocus: Această metodă setează focalizarea de intrare la caseta de text „nume fișier”.
- ControlSetText: Această metodă definește calea fișierului. Fișierul pe care îl vom încărca în caseta de text „numele fișierului” - calea acestuia este urmărită.
- ControlClick: Această metodă este utilizată pentru a face clic pe butonul „Deschidere” din fereastra de încărcare a fișierelor.
Ieșirea pentru codul de mai sus este prezentată mai jos:
(imagine sursă )
# 3) Cu ajutorul clasei de roboți
Roboții, așa cum știm, ajută la gestionarea diverselor activități, cum ar fi efectuarea unor sarcini, gestionarea funcțiilor tastaturii, a funcțiilor mouse-ului și multe altele. Aici vom înțelege anumite funcții care sunt utile în controlul tastaturii și mouse-ului în timp ce o aplicație este testată folosind Seleniu .
Evenimente cheie sau metode pentru implementarea clasei de roboți
În implementarea clasei Robot, există câteva metode pentru executarea scripturilor de testare.
Acestea sunt menționate mai jos:
- Tasta de apăsare (): Această metodă este apelată atunci când vrem să apăsăm orice tastă.
-
- Exemplu: robot.keyPress (KeyEvent. UK_ENTER );
- KeyRelease (): Această metodă este utilizată pentru a elibera tasta apăsată.
- Exemplu: robot.keyRelease (KeyEvent. UK_ENTER );
- MouseMove (): Se folosește atunci când este nevoie să mutați indicatorul mouse-ului peste coordonatele „X” și „Y”.
- Exemplu: robot.mouseMove ( coordonate.get.X () , coordonate.get.Y () );
- MousePress (): Această metodă se numește atunci când vrem să apăsăm butonul stâng al mouse-ului.
- Exemplu: robot.mousePress (InputEvent. BUTTON_MASK );
- MouseRelease (): Această metodă este utilizată pentru a elibera butonul apăsat al mouse-ului.
- Exemplu: robot.mouseRelease (InputEvent. BUTTON_DOWN_MASK );
Avantajele clasei de roboți
- Încărcarea fișierelor utilizând clasa de robot este ușoară.
- Se ocupă de funcțiile tastaturii și mouse-ului.
- De asemenea, este posibilă gestionarea ferestrelor pop-up.
Dezavantaje ale clasei de roboți
- Evenimentul tastaturii sau mouse-ului ar funcționa numai pe instanța curentă a ferestrei.
- În timpul executării unui eveniment robot, dacă execuția codului este mutată într-o altă fereastră, evenimentul mouse-ului sau tastaturii rămâne în continuare în fereastra anterioară.
- Nu este ușor să comutați între diferite ferestre.
Implementarea codului pentru încărcarea fișierelor utilizând Robot Class:
Pentru aceasta, vom lua în considerare exemplul Grammarly.com site-ul web. Mai jos este codul de implementare pentru gestionarea încărcării fișierelor în Selenium folosind clasa 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); } }
Ieșirea pentru codul de seleniu de mai sus este prezentată mai jos:
Astfel, fișierele pot fi încărcate cu ajutorul unei clase de roboți, unde putem vedea utilizarea evenimentelor de intrare precum apăsarea tastelor și eliberarea tastelor pentru copiere, lipire, introducere etc.
Exemple de încărcare fișiere
Să vedem câteva exemple de încărcare a fișierelor care sunt efectuate cu ajutorul Selenium:
# 1) Cont Gmail
Într-un cont Gmail, în timp ce trimiteți un e-mail cuiva, puteți include un atașament, adică un document de fișier care ar putea fi de orice tip: doc, text, csv, imagine, pdf etc. Aici, încărcarea fișierului intră în context.
Pentru mai multe detalii, consultați mai jos captura de ecran a încărcării fișierului.
recenzii convertor online de la YouTube la mp3
# 2) Încărcare document pentru verificare
De obicei, pentru paginile sau formularele de înregistrare, trebuie să încărcăm documente pentru verificare.
Vă rugăm să consultați imaginea de mai jos pentru mai multe clarificări:
ID_Proof
Reg_form
Pentru diverse astfel de verificări, cum ar fi verificarea dovezilor, verificarea adresei, dovada educației, etc., trebuie încărcate documente specifice.
Concluzie
Astfel, în acest tutorial, am văzut încărcarea fișierelor pe pagina HTML. Am văzut, de asemenea, diverse metode pentru gestionarea încărcării fișierelor în Selenium (care include metode precum utilizarea sendKeys, utilizarea AutoIT și utilizarea clasei Robot). De asemenea, am înțeles implementarea codului pentru gestionarea încărcării fișierelor în Selenium pentru fiecare dintre aceste metode și am analizat în cele din urmă câteva exemple.
Autor Bio - Acest articol a fost scris de Sonali Satpute, un B.E. (computer) calificat de la MITCOE, Pune, Professional Software Tester și Content Writer.
=> Citiți Ghidul complet de seleniu
Lectură recomandată
- Cum să gestionați ferestrele pop-up în seleniu folosind AutoIT
- Cum să selectați butoanele radio în Selenium WebDriver?
- Cum să selectați caseta de selectare din seleniu cu exemple
- Tutorial Castravete Seleniu: Integrare Castravete Java Seleniu WebDriver
- Introducere în Selenium WebDriver - Tutorial Selenium # 8
- Tutorial ChromeDriver Selenium: Teste Selenium Webdriver pe Chrome
- Clasa de robot în Selenium WebDriver cu Java
- Tutorial AutoIt - Descărcare, instalare și script de bază AutoIt