how upload file using selenium webdriver 3 methods
Scopri diversi metodi per gestire il caricamento dei file in Selenium con esempi di codice:
Il caricamento dei file viene eseguito quando è necessario caricare qualsiasi file o documento su un sito Web specifico come moduli, pagine di registrazione, caricatori di documenti, ecc.
Il caricamento di un processo di file include l'esplorazione di un file dalla posizione desiderata o dal computer e il caricamento sul sito Web.
=> Controlla TUTTI i tutorial sul selenio qui
Cosa imparerai:
File di caricamento del selenio
Consegnare il caricamento di file in Selenium può facilitare il lavoro umano e può essere fatto semplicemente utilizzando il sendKeys () metodo. Dopo il caricamento di un file viene visualizzato un messaggio che conferma se il file è stato caricato correttamente. Esistono molti altri metodi di automazione per il caricamento dei file.
Gli argomenti trattati in questo tutorial includono il caricamento di file in HTML, metodi per la gestione del caricamento di file in Selenium (che includerebbe metodi vale a dire: utilizzando sendKeys, quindi utilizzando AutoIT e la classe Robot).
Questo tutorial spiega anche l'implementazione del codice per la gestione del caricamento di file utilizzando questi metodi in Selenium, dopo di che vedremo alcuni esempi in cui il caricamento di file viene eseguito con l'aiuto di Selenium.
Caricamento di file in HTML
L'implementazione del codice seguente spiega l'operazione di caricamento dei file sulla pagina HTML. Il codice HTML mostra come eseguire l'operazione di caricamento facendo clic prima su Scegli il file per sfogliare il file da caricare e quindi fare clic su Caricare un file opzione, dopo di che possiamo vedere che il file è stato caricato con successo.
L'immagine sopra è costituita dalla pagina HTML creata e sotto c'è il codice HTML per la stessa. Diamo una rapida occhiata al codice HTML.
File Upload File Uploading (Upload the image file)
Select file to upload:
Quindi caricando il file desiderato facendo clic su Caricare un file opzione, viene visualizzata la pagina sottostante (immagine) (ovvero viene visualizzato il file immagine caricato) che conferma che il file scelto per il caricamento è stato caricato correttamente.
(Immagine fonte )
Metodi per caricare file in selenio
Vediamo alcuni metodi per la gestione del caricamento dei file e anche l'implementazione del codice per lo stesso.
Il caricamento dei file in Selenium può essere eseguito con i metodi seguenti:
- Utilizzando il metodo sendKeys
- Utilizzando lo strumento AutoIT
- Con l'aiuto di Robot Class
# 1) Utilizzo del metodo sendKeys
Il modo più semplice per caricare file in Selenium è utilizzare il metodo sendKeys. È una funzionalità integrata per il caricamento di file in Selenium.
La sintassi è la seguente:
WebElement upload_file = driver.findElement(By.xpath('//input(@id='file_up')')); upload_file.sendKeys('C:/Users/Sonali/Desktop/upload.png');
Cerchiamo di capire l'implementazione del codice per la tecnica precedente:
Per caricare i file utilizzando questo metodo, dobbiamo prima ispezionare l'elemento o il pulsante fornito per il caricamento del file, quindi utilizzando sendKeys, sfogliare il percorso in cui è conservato il file effettivo da caricare. Inserisci il percorso insieme al nome del file in sendKeys in modo che il programma venga spostato nel percorso indicato per recuperare il file.
Dopodiché, fai clic sul pulsante Salva o invia e il file verrà visualizzato caricato. A volte, riceviamo anche un messaggio che il file è stato caricato correttamente.
Implementazione del codice utilizzando il metodo sendKeys:
con cosa posso aprire un file eps
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'); } }
Pertanto, per caricare i file utilizzando l'opzione sendKeys, dobbiamo semplicemente utilizzare il metodo sendKeys integrato per caricare correttamente il file richiesto.
Questo è l'output del codice precedente (per Monster.com ) dove possiamo vedere un messaggio visualizzato come: 'Il file è stato caricato con successo' durante il caricamento del file nel driver web selenium utilizzando il metodo sendKeys.
# 2) Utilizzo di AutoIT
AutoIT è uno strumento di automazione freeware e open source per il sistema operativo Windows. È scritto in un linguaggio di scripting BASIC per l'automazione dell'interfaccia utente di Microsoft Windows. Simula qualsiasi combinazione di sequenze di tasti, movimenti del mouse e manipolazione dei controlli delle finestre.
Passaggi per scaricare e installare lo strumento AutoIT:
- Aperto collegamento
- Vai su AUTOIT -> DOWNLOAD. Scarica l'ultima versione di AutoIT.
- Procedi con l'installazione e la configurazione di AutoIT (avanti -> accetta -> selezione 32/64 bit -> selezione posizione installazione file -> Fine.
- Sono disponibili 2 file di installazione: a) AutoIt versione 3 e B) SciTE auto 3.
- Al termine dell'installazione, apri l'editor di AutoIT.
- Vai alla posizione in cui vengono salvati i file di installazione, fare clic sul file 'SciTE.exe' e si apre l'editor di AutoIT. Si prega di vedere lo screenshot qui sotto per l'editor di AutoIT.
AutoIT_Editor:
Ora, cerchiamo di capire in breve come usare questo strumento:
- Apri l'editor di AutoIT.
- Dobbiamo scrivere un semplice codice nell'editor di AutoIT, necessario per l'operazione di caricamento del file (il nome del file da caricare, sarà menzionato nel codice).
- Ora chiudi l'editor e fai clic destro su di esso, vedrai l'opzione di compilazione dello script. Scegli l'opzione di compilazione dello script (x64) per la macchina a 64 bit e vai con la compilazione dello script (x86) per una macchina a 32 bit.
- Non appena il passaggio precedente è completato, viene creato un file .exe e questo file verrà menzionato nel nostro codice di eclissi di selenio. Dopo la compilazione, come si vede nell'immagine sottostante 'Fileupload.exe' il file viene creato. Ora possiamo utilizzare questo file nello script del driver web Selenium.
Salvati_file:
L'immagine sotto ci aiuta a capire come il file da caricare che è form.csv viene caricato eseguendo lo script selenium eclipse che esegue il file fileupload.exe.
>> Visita questo pagina per maggiori dettagli su AutoIT.
programmi che nascondono il tuo indirizzo ip
Vedremo l'implementazione di questo metodo più avanti in questo tutorial.
Vantaggi di AutoIT:
- AutoIT è uno strumento open source per il quale non è necessario pagare.
- Piccoli eseguibili autonomi possono essere creati utilizzando AutoIT.
- Supporta la facile registrazione o riproduzione di script.
- Possiamo facilmente eseguire il debug del codice con comando di scrittura della console .
- Ha la possibilità di creare diverse GUI e riconosce quasi tutti i controlli di base di Windows.
- È semplice e intuitivo.
Svantaggi di AutoIT:
- Funziona solo nel sistema operativo Windows
- Poiché la conoscenza dei principi fondamentali di codifica è un must, si rivela un ottimo strumento per i professionisti ma potrebbe essere un po 'complicato per i principianti.
- AutoIT non ha il supporto Java disponibile finora.
- Gli utenti devono importare librerie separate mentre utilizzano diverse funzioni di utilità predefinite.
Passiamo ora al codice di implementazione del caricamento di file utilizzando AutoIT:
Qui, vedremo come possiamo gestire il caricamento di file utilizzando AutoIT in Selenium. Per questo consideriamo l'esempio del sito OrangeHRM.
Implementazione del codice per la gestione del caricamento di file in Selenium utilizzando 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 } }
Come visto nel codice sopra, la riga seguente è molto importante in quanto mostra l'uso di AutoIT:
Runtime.getRuntime (). Exec ('C: \ Users \ Chait \ Desktop \ autoit \ fileupload.exe');
Qui,
- Runtime : Consente allo script di interfacciarsi con l'ambiente in cui è in esecuzione lo script.
- getRuntime (): Viene utilizzato per ottenere il runtime corrente associato al processo.
- exec (): Esegue lo script AutoIT (qui, che è fileupload.exe).
Quando il programma esegue questa riga, passa attraverso il file fileupload.exe in cui viene eseguito il codice AutoIT come mostrato di seguito:
ControlFocus('File Upload','','Edit1') ControlSetText('File Upload','','Edit1','C:UsersChaitDesktopautoitdata_file.csv') ControlClick('File Upload','','Button1')
Qui,
- ControlFocus: Questo metodo imposta il focus di input sulla casella di testo 'nome file'.
- ControlSetText: Questo metodo definisce il percorso del file. Il file che caricheremo nella casella di testo 'nome file' - il suo percorso viene tracciato.
- ControlClick: Questo metodo viene utilizzato per fare clic sul pulsante 'Apri' della finestra di caricamento dei file.
L'output per il codice sopra è mostrato di seguito:
(Immagine fonte )
# 3) Con l'aiuto di Robot Class
I robot come sappiamo, aiutano nella gestione di varie attività come l'esecuzione di alcune attività, la gestione delle funzioni della tastiera, delle funzioni del mouse e molte altre. Qui capiremo alcune funzioni che sono utili per controllare la tastiera e il mouse mentre un'applicazione viene testata usando Selenio .
KeyEvents o metodi per l'implementazione della classe Robot
Nell'implementazione della classe Robot, ci sono alcuni metodi per l'esecuzione di script di test.
Questi sono menzionati di seguito:
- KeyPress (): Questo metodo viene chiamato quando vogliamo premere un tasto qualsiasi.
-
- Esempio: robot.keyPress (KeyEvent. UK_ENTER );
- KeyRelease (): Questo metodo viene utilizzato per rilasciare il tasto premuto.
- Esempio: robot.keyRelease (KeyEvent. UK_ENTER );
- MouseMove (): Utilizzato quando è necessario spostare il puntatore del mouse sulle coordinate 'X' e 'Y'.
- Esempio: robot.mouseMove ( coordinate.get.X () , coordinate.get.Y () );
- MousePress (): Questo metodo viene chiamato quando vogliamo premere il pulsante sinistro del mouse.
- Esempio: robot.mousePress (InputEvent. BUTTON_MASK );
- MouseRelease (): Questo metodo viene utilizzato per rilasciare il pulsante del mouse premuto.
- Esempio: robot.mouseRelease (InputEvent. BUTTON_DOWN_MASK );
Vantaggi della classe robot
- Il caricamento di file utilizzando la classe robot è facile.
- Gestisce le funzioni della tastiera e del mouse.
- È anche possibile gestire i popup.
Svantaggi di Robot Class
- L'evento della tastiera o del mouse funzionerebbe solo sull'istanza corrente della finestra.
- Durante l'esecuzione di un evento robot, se l'esecuzione del codice viene spostata in un'altra finestra, l'evento del mouse o della tastiera rimane ancora nella finestra precedente.
- Non è facile passare da una finestra all'altra.
Implementazione del codice per il caricamento dei file utilizzando Robot Class:
Per questo, considereremo l'esempio di Grammarly.com sito web. Di seguito è riportato il codice di implementazione per la gestione del caricamento dei file in Selenium utilizzando la classe 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); } }
L'output per il codice selenio sopra è mostrato di seguito:
Pertanto, i file possono essere caricati con l'aiuto di una classe Robot, dove possiamo vedere l'uso di eventi di input come Key Pressing e Key Releasing per copiare, incollare, inserire, ecc.
Esempi di caricamento di file
Vediamo alcuni esempi di caricamento di file che vengono eseguiti con l'aiuto di Selenium:
# 1) Account Gmail
In un account Gmail, mentre invii un'email a qualcuno, puoi includere un allegato, ad esempio un documento file che potrebbe essere di qualsiasi tipo: doc, testo, csv, immagine, pdf, ecc. Qui, il caricamento del file entra nel contesto.
Per maggiori dettagli, vedi sotto lo screenshot del caricamento del file.
qual è la mia chiave di sicurezza wifi
# 2) Caricamento del documento per la verifica
Di solito, per le pagine o i moduli di registrazione, dobbiamo caricare i documenti per la verifica.
Si prega di vedere l'immagine sottostante per ulteriori chiarimenti:
ID_Proof
Reg_form
Per varie di tali verifiche come la verifica della prova, la verifica dell'indirizzo, la prova dell'istruzione, ecc. Devono essere caricati documenti specifici.
Conclusione
Pertanto, in questo tutorial, abbiamo visto il caricamento di file sulla pagina HTML. Abbiamo anche visto vari metodi per gestire il caricamento dei file in Selenium (che include metodi come l'uso di sendKeys, l'uso di AutoIT e l'uso della classe Robot). Abbiamo anche compreso l'implementazione del codice per la gestione del caricamento dei file in Selenium per ciascuno di questi metodi e alla fine abbiamo esaminato alcuni esempi.
Autore Bio - Questo articolo è stato scritto da Sonali Satpute, un B.E. qualificato (Computer) di MITCOE, Pune, Professional Software Tester e Content Writer.
=> Leggere tutta la guida completa al selenio
Lettura consigliata
- Come gestire i popup di Windows in selenio utilizzando AutoIT
- Come selezionare i pulsanti radio in Selenium WebDriver?
- Come selezionare la casella di controllo in selenio con esempi
- Esercitazione sul selenio di cetriolo: integrazione con WebDriver di selenio Java di cetriolo
- Introduzione a Selenium WebDriver - Selenium Tutorial # 8
- Tutorial ChromeDriver Selenium: test webdriver selenio su Chrome
- Classe di robot in Selenium WebDriver con Java
- Tutorial AutoIt - Download, installazione e script AutoIt di base di AutoIt