how upload file using selenium webdriver 3 methods
Apreneu diferents mètodes per gestionar la càrrega de fitxers a Selenium amb exemples de codis:
La càrrega de fitxers es realitza quan cal carregar qualsevol fitxer o document en un lloc web específic, com ara formularis, pàgines de registre, càrregues de documents, etc.
Carregar un procés de fitxer inclou navegar per un fitxer des de la ubicació desitjada o des de l’ordinador i penjar-lo al lloc web.
=> Consulteu TOTS els tutorials de Selenium aquí
Què aprendreu:
Fitxer de càrrega de seleni
El lliurament de fitxers a Selenium pot facilitar el treball humà i es pot fer simplement mitjançant el fitxer sendKeys () mètode. Es mostra un missatge després de penjar un fitxer que confirma si el fitxer s’està carregant correctament. Hi ha molts altres mètodes d'automatització per a la càrrega de fitxers.
Els temes tractats en aquest tutorial inclouen la càrrega de fitxers en HTML, els mètodes per gestionar la càrrega de fitxers a Selenium (que inclourien mètodes: utilitzar sendKeys i després utilitzar AutoIT i la classe Robot).
Aquest tutorial també explica la implementació del codi per gestionar la càrrega de fitxers mitjançant aquests mètodes a Selenium, després de la qual cosa veurem uns quants exemples on es realitza la càrrega de fitxers amb l'ajut de Selenium.
Càrrega de fitxers en HTML
La implementació del codi següent explica l'operació de càrrega de fitxers a la pàgina HTML. El codi HTML mostra com es pot realitzar l'operació de càrrega fent primer clic al botó Trieu l'arxiu per navegar pel fitxer que voleu carregar i feu clic a Penja el document opció, després de la qual podem veure que el fitxer es carrega correctament.
La imatge anterior consta de la pàgina HTML creada i a continuació es mostra el codi HTML de la mateixa. Fem una ullada ràpida al codi HTML.
File Upload File Uploading (Upload the image file)
Select file to upload:
Per tant, en penjar el fitxer desitjat fent clic a Penja el document opció, es mostra la pàgina següent (imatge) (és a dir, es mostra el fitxer d'imatge carregat) que confirma que el fitxer triat per carregar s'ha carregat correctament.
(imatge font )
Mètodes per carregar fitxers a Selenium
Vegem alguns mètodes per gestionar la càrrega de fitxers i també la implementació de codi per al mateix.
La càrrega de fitxers a Selenium es pot fer amb els mètodes següents:
- Utilitzant el mètode sendKeys
- Utilitzant l'eina AutoIT
- Amb l’ajut de Robot Class
# 1) Mitjançant el mètode sendKeys
La forma més bàsica de carregar fitxers a Selenium és mitjançant el mètode sendKeys. És una funció incorporada per a la càrrega de fitxers a Selenium.
La sintaxi és la següent:
WebElement upload_file = driver.findElement(By.xpath('//input(@id='file_up')')); upload_file.sendKeys('C:/Users/Sonali/Desktop/upload.png');
Compreneu la implementació del codi per a la tècnica anterior:
Per carregar fitxers mitjançant aquest mètode, primer hem d’inspeccionar l’element o el botó proporcionat per a la càrrega de fitxers i, a continuació, amb sendKeys, navegar pel camí on es guarda el fitxer real que es vol carregar. Col·loqueu el camí d'accés juntament amb el nom del fitxer a sendKeys perquè el programa es desplaci al camí esmentat per obtenir el fitxer.
Després d'això, feu clic al botó Desa o envia i el fitxer es veurà carregat. De vegades, també rebem un missatge que indica que el fitxer s’està carregant correctament.
Implementació de codi mitjançant el mètode sendKeys:
llista d’empreses que utilitzen computació en núvol
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'); } }
Per tant, per carregar fitxers mitjançant l’opció sendKeys, simplement hem d’utilitzar el mètode sendKeys incorporat per carregar correctament el fitxer requerit.
Aquesta és la sortida del codi anterior (per a Monster.com ) on podem veure un missatge que es mostra com: 'El fitxer s'ha penjat correctament' en penjar el fitxer al controlador web de seleni mitjançant el mètode sendKeys.
# 2) Utilitzant AutoIT
AutoIT és un programari gratuït i una eina d'automatització de codi obert per al sistema operatiu Windows. Està escrit en un llenguatge informàtic de scripts BÀSIC per automatitzar la interfície d'usuari de Microsoft Windows. Simula qualsevol combinació de pulsacions de teclat, moviments del ratolí i manipulació del control de Windows.
Passos per descarregar i instal·lar l'eina AutoIT:
- Obert enllaç
- Aneu a AUTOIT -> DESCÀRREGUES. Descarregueu la versió més recent d'AutoIT.
- Continueu amb la instal·lació i configuració d'AutoIT (següent -> d'acord -> Selecció de 32/64 bits -> Selecció d'ubicació d'instal·lació de fitxers -> Finalitza.
- Hi ha dos fitxers de configuració: a) AutoIt versió 3 i b) SciTE auto 3.
- Un cop finalitzada la instal·lació, obriu l'editor AutoIT.
- Aneu a la ubicació on es guarden els fitxers de configuració, feu clic al fitxer ‘SciTE.exe’ i s’obre l’editor AutoIT. Consulteu la captura de pantalla següent per a l'editor AutoIT.
AutoIT_Editor:
Ara, entenem-ho en resum com utilitzar aquesta eina:
- Obriu l'editor AutoIT.
- Hem d’escriure un codi senzill a l’editor AutoIT, necessari per a l’operació de càrrega de fitxers (el nom del fitxer que es carregarà es mencionarà al codi).
- Ara tanqueu l'editor i feu clic amb el botó dret a sobre, veureu l'opció de compilació de scripts. Trieu l'opció compila script (x64) per a màquina de 64 bits i aneu amb script de compilació (x86) per a una màquina de 32 bits.
- Tan bon punt es completi el pas anterior, es crea un fitxer .exe i aquest esmentarà al nostre codi d’eclipsi de seleni. Després de la compilació, com es veu a la imatge següent 'Fileupload.exe' es crea el fitxer. Ara podem fer ús d’aquest fitxer a l’escript del controlador web Selenium.
Fitxers desats:
La imatge següent ens ajuda a entendre com s’està carregant el fitxer que es vol carregar form.csv executant l’escriptura de seleni eclipsi que executa el fitxer fileupload.exe.
>> Visiteu això pàgina per obtenir més detalls sobre AutoIT.
Veurem la implementació d’aquest mètode més endavant en aquest tutorial.
Avantatges d'AutoIT:
- AutoIT és una eina de codi obert per la qual no hem de pagar.
- Es poden crear petits executables independents mitjançant AutoIT.
- Admet enregistraments fàcils de gravar o reproduir.
- Podem depurar el codi fàcilment amb ordre d'escriptura de la consola .
- Té l'opció de crear diferents GUI i reconeix gairebé tots els controls bàsics de Windows.
- És senzill i fàcil d'utilitzar.
Desavantatges d'AutoIT:
- Funciona només amb el sistema operatiu Windows
- Com que el coneixement dels principis fonamentals de codificació és imprescindible, demostra ser una gran eina per als professionals, però pot ser una mica complicat per als principiants.
- AutoIT encara no disposa de suport Java.
- Els usuaris han d’importar biblioteques separades mentre utilitzen diferents funcions d’utilitat predefinides.
Ara, anem al codi d'implementació de Càrrega de fitxers mitjançant AutoIT:
Aquí veurem com podem gestionar la càrrega de fitxers mitjançant AutoIT a Selenium. Per a això, considerem l'exemple del lloc web d'OrangeHRM.
Implementació de codi per gestionar la càrrega de fitxers a Selenium mitjançant 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 } }
Com es veu al codi anterior, la línia següent és molt important ja que mostra l’ús d’AutoIT:
Runtime.getRuntime (). Exec ('C: \ Users \ Chait \ Desktop \ autoit \ fileupload.exe');
millor empresa de recuperació de dades del disc dur
Aquí,
- Temps d'execució : Permet que la seqüència s'interfaci amb l'entorn en què s'executa.
- getRuntime (): S'utilitza per obtenir el temps d'execució actual associat al procés.
- exec (): Executa l'script AutoIT (aquí, que és fileupload.exe).
Quan el programa executa aquesta línia, passa pel fitxer fileupload.exe on s’executa el codi AutoIT tal com es mostra a continuació:
ControlFocus('File Upload','','Edit1') ControlSetText('File Upload','','Edit1','C:UsersChaitDesktopautoitdata_file.csv') ControlClick('File Upload','','Button1')
Aquí,
- ControlFocus: Aquest mètode estableix el focus d'entrada al quadre de text 'nom del fitxer'.
- ControlSetText: Aquest mètode defineix la ruta del fitxer. El fitxer que penjarem al quadre de text 'nom del fitxer': el seu camí es rastreja.
- ControlClick: Aquest mètode s’utilitza per fer clic al botó ‘Obrir’ de la finestra de càrrega de fitxers.
A continuació es mostra la sortida del codi anterior:
(imatge font )
# 3) Amb l'ajuda de Robot Class
Els robots que sabem ajuden a gestionar diverses activitats, com ara realitzar algunes tasques, gestionar les funcions del teclat, les funcions del ratolí i moltes més. Aquí comprendreem algunes funcions que són útils per controlar el teclat i el ratolí mentre es prova una aplicació amb Seleni .
Esdeveniments clau o mètodes per implementar la classe de robots
A la implementació de la classe Robot, hi ha alguns mètodes per a l'execució de scripts de prova.
A continuació, s’esmenten:
- Premeu la tecla (): Aquest mètode es diu quan volem prémer qualsevol tecla.
-
- Exemple: robot.keyPress (KeyEvent. UK_ENTER );
- KeyRelease (): Aquest mètode s’utilitza per deixar anar la tecla premuda.
- Exemple: robot.keyRelease (KeyEvent. UK_ENTER );
- MouseMove (): S’utilitza quan cal moure el punter del ratolí per sobre de les coordenades ‘X’ i ‘Y’.
- Exemple: robot.mouseMove ( coordenades.get.X () , coordinates.get.Y () );
- MousePress (): Aquest mètode es diu quan volem prémer el botó esquerre del ratolí.
- Exemple: robot.mousePress (InputEvent. BUTTON_MASK );
- MouseRelease (): Aquest mètode s’utilitza per deixar anar el botó premut del ratolí.
- Exemple: robot.mouseRelease (InputEvent. BUTTON_DOWN_MASK );
Avantatges de la classe de robots
- La càrrega de fitxers mitjançant la classe de robot és fàcil.
- Maneja les funcions del teclat i del ratolí.
- També és possible gestionar finestres emergents.
Desavantatges de la classe de robots
- L'esdeveniment de teclat o ratolí només funcionaria a la instància actual de la finestra.
- Mentre s’executa un esdeveniment de robot, si l’execució del codi es mou a una altra finestra, l’esdeveniment del ratolí o del teclat continua romanent a la finestra anterior.
- No és fàcil canviar entre diferents finestres.
Implementació del codi per a la càrrega de fitxers mitjançant Robot Class:
Per a això, considerarem l'exemple del Grammarly.com lloc web. A continuació es mostra el codi d’implementació per gestionar la càrrega de fitxers a Selenium mitjançant 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); } }
A continuació es mostra la sortida del codi de seleni anterior:
Per tant, els fitxers es poden penjar amb l'ajuda d'una classe de robots, on podem veure l'ús d'esdeveniments d'entrada com Premsa de tecles i Liberació de tecles per copiar, enganxar, introduir, etc.
Exemples de càrrega de fitxers
Vegem alguns exemples de càrrega de fitxers que es realitzen amb l'ajut de Selenium:
# 1) Compte de Gmail
En un compte de Gmail, mentre envieu un correu electrònic a algú, podeu incloure un fitxer adjunt, és a dir, un document de fitxer que pugui ser de qualsevol tipus: doc, text, csv, imatge, pdf, etc. Aquí, la càrrega de fitxers entra en context.
Per obtenir més informació, consulteu a continuació la captura de pantalla de la càrrega del fitxer.
# 2) Càrrega de documents per a la seva verificació
Normalment, per a pàgines o formularis de registre, hem de penjar documents per verificar-los.
Consulteu la imatge següent per obtenir més aclariments:
ID_Proof
Reg_form
Per a diverses verificacions d’aquest tipus, com ara la verificació de proves, la verificació d’adreces, proves educatives, etc., cal carregar documents específics.
css3 preguntes i respostes de l'entrevista pdf
Conclusió
Així, en aquest tutorial hem vist pujar fitxers a la pàgina HTML. També hem vist diversos mètodes per gestionar la càrrega de fitxers a Selenium (que inclou mètodes com l’ús de sendKeys, l’ús d’AutoIT i l’ús de la classe Robot). També vam entendre la implementació del codi per gestionar la càrrega de fitxers a Selenium per a cadascun d’aquests mètodes i finalment vam veure alguns exemples.
Autor Bio - Aquest article va ser escrit per Sonali Satpute, un B.E. (Computer) qualificat de MITCOE, Pune, Professional Software Tester i Content Writer.
=> Llegiu la guia completa de seleni
Lectura recomanada
- Com gestionar les finestres emergents de Windows amb seleni mitjançant AutoIT
- Com seleccionar botons de ràdio a Selenium WebDriver?
- Com es pot seleccionar la casella de selecció amb seleni amb exemples
- Tutorial de Cogombre Selenium: Integració de Cogombre Java Selenium WebDriver
- Introducció a Selenium WebDriver - Tutorial Selenium núm. 8
- Tutorial de ChromeDriver Selenium: proves de Selenium Webdriver a Chrome
- Classe de robots a Selenium WebDriver amb Java
- Tutorial d'AutoIt: descàrrega, instal·lació i script bàsic d'AutoIt