how upload file using selenium webdriver 3 methods
Découvrez différentes méthodes de gestion du téléchargement de fichiers dans Selenium avec des exemples de code:
Le téléchargement de fichiers est effectué lorsqu'il est nécessaire de télécharger un fichier ou un document sur un site Web spécifique tel que des formulaires, des pages d'enregistrement, des téléchargeurs de documents, etc.
Le processus de téléchargement d'un fichier comprend la navigation dans un fichier à partir de l'emplacement souhaité ou depuis votre ordinateur et son téléchargement sur le site Web.
=> Consultez TOUS les tutoriels Selenium ici
Ce que vous apprendrez:
Fichier de téléchargement Selenium
Le transfert de fichiers dans Selenium peut faciliter le travail humain et peut être effectué simplement en utilisant le sendKeys () méthode. Un message s'affiche après le téléchargement d'un fichier qui confirme si le fichier est en cours de téléchargement. Il existe de nombreuses autres méthodes d'automatisation pour le téléchargement de fichiers.
Les sujets abordés dans ce didacticiel incluent le téléchargement de fichiers en HTML, les méthodes de gestion du téléchargement de fichiers dans Selenium (qui incluraient des méthodes à savoir: l'utilisation de sendKeys, puis l'utilisation d'AutoIT et de la classe Robot).
Ce tutoriel explique également l'implémentation du code pour gérer le téléchargement de fichiers à l'aide de ces méthodes dans Selenium, après quoi nous verrons quelques exemples où le téléchargement de fichiers est effectué à l'aide de Selenium.
Téléchargement de fichier en HTML
L'implémentation du code ci-dessous explique l'opération de téléchargement de fichier sur la page HTML. Le code HTML montre comment l'opération de téléchargement peut être effectuée en cliquant d'abord sur le Choisir le fichier pour parcourir le fichier à télécharger puis cliquez sur Téléverser un fichier option, après quoi nous pouvons voir que le fichier est téléchargé avec succès.
L'image ci-dessus se compose de la page HTML créée et ci-dessous est le code HTML pour la même. Jetons un coup d'œil au code HTML.
File Upload File Uploading (Upload the image file)
Select file to upload:
Ainsi en téléchargeant le fichier souhaité en cliquant sur le Téléverser un fichier option, la page (image) ci-dessous s'affiche (c'est-à-dire que le fichier image téléchargé est affiché), ce qui confirme que le fichier choisi pour le téléchargement a été téléchargé avec succès.
(image la source )
Méthodes pour télécharger des fichiers dans Selenium
Voyons quelques méthodes pour gérer le téléchargement de fichiers et également la mise en œuvre du code pour le même.
Le téléchargement de fichiers dans Selenium peut être effectué avec les méthodes ci-dessous:
- Utilisation de la méthode sendKeys
- Utilisation de l'outil AutoIT
- Avec l'aide de Robot Class
# 1) Utilisation de la méthode sendKeys
Le moyen le plus simple de télécharger des fichiers dans Selenium consiste à utiliser la méthode sendKeys. C'est une fonctionnalité intégrée pour le téléchargement de fichiers dans Selenium.
La syntaxe est la suivante:
WebElement upload_file = driver.findElement(By.xpath('//input(@id='file_up')')); upload_file.sendKeys('C:/Users/Sonali/Desktop/upload.png');
Comprenons l'implémentation du code pour la technique ci-dessus:
Pour télécharger des fichiers à l'aide de cette méthode, nous devons d'abord inspecter l'élément ou le bouton fourni pour le téléchargement de fichier, puis en utilisant sendKeys, parcourir le chemin où le fichier réel à télécharger est conservé. Placez le chemin avec le nom du fichier dans sendKeys afin que le programme soit dirigé vers le chemin mentionné pour récupérer le fichier.
Après cela, cliquez sur le bouton Enregistrer ou Soumettre et le fichier sera vu téléchargé. Parfois, nous recevons également un message indiquant que le fichier est en cours de téléchargement.
Implémentation de code à l'aide de la méthode sendKeys:
comment ouvrir un fichier swf sur chrome
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'); } }
Ainsi, pour télécharger des fichiers à l'aide de l'option sendKeys, nous devons simplement utiliser la méthode sendKeys intégrée pour télécharger le fichier requis avec succès.
Ceci est la sortie du code ci-dessus (pour Monster.com ) où nous pouvons voir un message affiché comme: 'Fichier téléversé avec succès' lors du téléchargement du fichier dans le pilote Web sélénium à l'aide de la méthode sendKeys.
# 2) Utilisation d'AutoIT
AutoIT est un logiciel gratuit et un outil d'automatisation open-source pour le système d'exploitation Windows. Il est écrit dans un langage informatique de script BASIC pour automatiser l'interface utilisateur de Microsoft Windows. Il simule toute combinaison de frappes au clavier, de mouvements de souris et de manipulation de contrôle des fenêtres.
meilleur service de conférence téléphonique gratuit 2020
Étapes pour télécharger et installer l'outil AutoIT:
- Ouvert lien
- Allez dans AUTOIT -> TÉLÉCHARGEMENTS. Téléchargez la dernière version d'AutoIT.
- Poursuivez l'installation et la configuration d'AutoIT (suivant -> d'accord -> sélection 32/64 bits -> sélection de l'emplacement d'installation du fichier -> Terminer.
- Il existe 2 fichiers d'installation: a) AutoIt version 3 et B) SciTE auto 3.
- Une fois l'installation terminée, ouvrez l'éditeur AutoIT.
- Accédez à l'emplacement où les fichiers d'installation sont enregistrés, cliquez sur le fichier «SciTE.exe» et l’éditeur AutoIT s’ouvre. Veuillez voir la capture d'écran ci-dessous pour l'éditeur AutoIT.
AutoIT_Editor:
Maintenant, laissez-nous comprendre en bref Comment utiliser cet outil:
- Ouvrez l'éditeur AutoIT.
- Nous devons écrire un code simple dans l'éditeur AutoIT, requis pour l'opération de téléchargement de fichier (le nom du fichier à télécharger sera mentionné dans le code).
- Fermez maintenant l'éditeur et faites un clic droit dessus, vous verrez l'option de script de compilation. Choisissez l'option de script de compilation (x64) pour une machine 64 bits et utilisez le script de compilation (x86) pour une machine 32 bits.
- Dès que l'étape ci-dessus est terminée, un fichier .exe est créé et ce fichier sera mentionné dans notre code d'éclipse de sélénium. Après compilation, comme le montre l'image ci-dessous «Fileupload.exe» le fichier est créé. Nous pouvons maintenant utiliser ce fichier dans le script du pilote Web Selenium.
Saved_files:
L'image ci-dessous nous aide à comprendre comment le fichier à télécharger qui est form.csv est téléchargé en exécutant le script d'éclipse de sélénium qui exécute le fichier fileupload.exe.
>> Visitez ceci page pour plus de détails sur AutoIT.
Nous verrons l'implémentation de cette méthode plus loin dans ce tutoriel.
Avantages d'AutoIT:
- AutoIT est un outil open source pour lequel nous n'avons pas besoin de payer.
- De petits exécutables autonomes peuvent être créés à l'aide d'AutoIT.
- Il prend en charge des scripts faciles à enregistrer ou à lire.
- Nous pouvons facilement déboguer le code avec commande d'écriture de la console .
- Il a la possibilité de créer différentes interfaces graphiques et reconnaît presque tous les contrôles Windows de base.
- C'est simple et convivial.
Inconvénients d'AutoIT:
- Cela ne fonctionne que dans le système d'exploitation Windows
- Comme la connaissance des principes de codage fondamentaux est indispensable, cela s'avère être un excellent outil pour les professionnels, mais peut être un peu compliqué pour les débutants.
- AutoIT n'a pas encore de support Java disponible.
- Les utilisateurs doivent importer des bibliothèques séparées tout en utilisant différentes fonctions utilitaires prédéfinies.
Maintenant, passons au code d'implémentation de File Upload en utilisant AutoIT:
Ici, nous verrons comment nous pouvons gérer le téléchargement de fichiers à l'aide d'AutoIT dans Selenium. Pour cela, considérons l'exemple du site OrangeHRM.
Implémentation de code pour gérer le téléchargement de fichiers dans Selenium à l'aide d'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 } }
Comme le montre le code ci-dessus, la ligne suivante est très importante car elle montre l'utilisation d'AutoIT:
Runtime.getRuntime (). Exec («C: \ Users \ Chait \ Desktop \ autoit \ fileupload.exe»);
Ici,
- Durée : Cela permet au script de s'interfacer avec l'environnement dans lequel le script s'exécute.
- getRuntime (): Il est utilisé pour obtenir le runtime actuel associé au processus.
- exec (): Il exécute le script AutoIT (ici, qui est fileupload.exe).
Lorsque le programme exécute cette ligne, il passe par le fichier fileupload.exe où le code AutoIT est exécuté comme indiqué ci-dessous:
ControlFocus('File Upload','','Edit1') ControlSetText('File Upload','','Edit1','C:UsersChaitDesktopautoitdata_file.csv') ControlClick('File Upload','','Button1')
Ici,
- ControlFocus: Cette méthode définit le focus d'entrée sur la zone de texte «nom de fichier».
- ControlSetText: Cette méthode définit le chemin du fichier. Le fichier que nous allons télécharger dans la zone de texte «nom de fichier» - son chemin est tracé.
- ControlCliquez: Cette méthode est utilisée pour cliquer sur le bouton «Ouvrir» de la fenêtre de téléchargement de fichiers.
La sortie pour le code ci-dessus est indiquée ci-dessous:
(image la source )
# 3) Avec l'aide de Robot Class
Les robots, comme nous le savons, aident à gérer diverses activités telles que l'exécution de certaines tâches, la gestion des fonctions du clavier, des fonctions de la souris et bien d'autres. Ici, nous allons comprendre certaines fonctions utiles pour contrôler le clavier et la souris lors du test d'une application en utilisant Sélénium .
KeyEvents ou méthodes d'implémentation de la classe Robot
Dans l'implémentation de la classe Robot, il existe quelques méthodes pour l'exécution de scripts de test.
Ceux-ci sont mentionnés ci-dessous:
- Appuyez sur la touche(): Cette méthode est appelée lorsque nous voulons appuyer sur n'importe quelle touche.
-
- Exemple: robot.keyPress (KeyEvent. UK_ENTER );
- KeyRelease (): Cette méthode est utilisée pour relâcher la touche enfoncée.
- Exemple: robot.keyRelease (KeyEvent. UK_ENTER );
- MouseMove (): Utilisé lorsqu'il est nécessaire de déplacer le pointeur de la souris sur les coordonnées «X» et «Y».
- Exemple: robot.mouseMove ( coordonnées.get.X () , coordonnées.get.Y () );
- Appuyez sur la souris (): Cette méthode est appelée lorsque nous voulons appuyer sur le bouton gauche de la souris.
- Exemple: robot.mousePress (InputEvent. BOUTON_MASK );
- MouseRelease (): Cette méthode est utilisée pour relâcher le bouton enfoncé de la souris.
- Exemple: robot.mouseRelease (InputEvent. BUTTON_DOWN_MASK );
Avantages de la classe de robot
- Le téléchargement de fichiers à l'aide de la classe robot est facile.
- Il gère les fonctions du clavier et de la souris.
- La gestion des pop-ups est également possible.
Inconvénients de la classe de robot
- L'événement clavier ou souris ne fonctionnerait que sur l'instance actuelle de la fenêtre.
- Lors de l'exécution d'un événement robot, si l'exécution du code est déplacée vers une autre fenêtre, l'événement souris ou clavier reste toujours dans la fenêtre précédente.
- Il n'est pas facile de basculer entre les différentes fenêtres.
Implémentation de code pour le téléchargement de fichiers à l'aide de Robot Class:
quels sont les principaux fournisseurs de messagerie
Pour cela, nous allons considérer l'exemple du Grammarly.com site Internet. Vous trouverez ci-dessous le code d'implémentation pour gérer le téléchargement de fichiers dans Selenium à l'aide de 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); } }
La sortie pour le code de sélénium ci-dessus est indiquée ci-dessous:
Ainsi, les fichiers peuvent être téléchargés à l'aide d'une classe Robot, où nous pouvons voir l'utilisation d'événements d'entrée tels que l'appui sur les touches et le relâchement des touches pour copier, coller, entrer, etc.
Exemples de téléchargement de fichiers
Voyons quelques exemples de téléchargement de fichiers qui sont effectués à l'aide de Selenium:
# 1) Compte Gmail
Dans un compte Gmail, lorsque vous envoyez un e-mail à quelqu'un, vous pouvez inclure une pièce jointe, c'est-à-dire un fichier document qui peut être de n'importe quel type: doc, texte, csv, image, pdf, etc. Ici, le téléchargement de fichiers entre en contexte.
Pour plus de détails, veuillez voir ci-dessous la capture d'écran du téléchargement du fichier.
# 2) Téléchargement de documents pour vérification
Habituellement, pour les pages ou les formulaires d'inscription, nous devons télécharger des documents pour vérification.
Veuillez voir l'image ci-dessous pour plus de précisions:
ID_Proof
Reg_form
Pour diverses vérifications telles que la vérification des preuves, la vérification de l'adresse, la preuve de l'éducation, etc., des documents spécifiques doivent être téléchargés.
Conclusion
Ainsi, dans ce tutoriel, nous avons vu le téléchargement de fichiers sur la page HTML. Nous avons également vu diverses méthodes pour gérer le téléchargement de fichiers dans Selenium (qui inclut des méthodes telles que l'utilisation de sendKeys, l'utilisation d'AutoIT et l'utilisation de la classe Robot). Nous avons également compris l'implémentation du code de gestion du téléchargement de fichiers dans Selenium pour chacune de ces méthodes et avons finalement examiné quelques exemples.
Biographie de l'auteur - Cet article a été écrit par Sonali Satpute, un B.E. (informatique) qualifié de MITCOE, Pune, testeur de logiciel professionnel et rédacteur de contenu.
=> Lisez le guide complet du sélénium
lecture recommandée
- Comment gérer Windows Pop Up dans Selenium à l'aide d'AutoIT
- Comment sélectionner les boutons radio dans Selenium WebDriver?
- Comment sélectionner la case à cocher dans Selenium avec des exemples
- Tutoriel Cucumber Selenium: Intégration Cucumber Java Selenium WebDriver
- Introduction à Selenium WebDriver - Tutoriel Selenium # 8
- Tutoriel ChromeDriver Selenium: Tests Selenium Webdriver sur Chrome
- Classe de robot dans Selenium WebDriver avec Java
- Tutoriel AutoIt - Téléchargement, installation et script AutoIt de base