how read write data from excel sheet selenium web driver
Dans ce didacticiel, vous apprendrez à lire et à écrire des données à partir d'un fichier Excel dans Selenium WebDriver à l'aide de l'API FILLO et des instructions SQL.
La lecture ou l'écriture de données est l'une des opérations les plus couramment utilisées, qu'il s'agisse de récupérer des valeurs dans des tables de base de données ou de récupérer des valeurs à partir d'une feuille Excel et de les utiliser pour effectuer des analyses.
Dans cet article, nous parlons de la récupération des valeurs d'un fichier Excel à l'aide d'instructions SQL et de l'API FILLO.
Ce que vous apprendrez:
Présentation de l'API SON
FILLO est une API Java utilisée pour récupérer des données à partir de fichiers Excel. Avec l'utilisation de l'API FILLO, le paramétrage devient très simple, c'est-à-dire exécuter vos cas de test dans Selenium avec un ensemble de données différent.
Auparavant, nous utilisions l'API JXL pour effectuer le paramétrage, puis Apache POI est arrivé sur le marché, et dans ces deux API, nous devons écrire du gros code, parcourir les lignes et les colonnes et récupérer les valeurs stockées dans une feuille Excel.
modèles de cycle de vie de développement de logiciels en cascade
Mais maintenant, avec cette nouvelle API FILLO, plus besoin de se soucier de la taille des lignes et des colonnes, tout sera pris en charge par l'API en interne. Il vous suffit d'appeler les classes définies dans l'API et de déclarer vos données de test dans le fichier excel. Référez-vous au site officiel pour la documentation et le téléchargement du fichier jar- Bibliothèque SON Java
Si vous utilisez Maven, utilisez la dépendance Maven.
Pot FILLO avec dépendance Maven
début
- C'est une API Excel pour le langage Java.
- Il prend en charge les fichiers .xls et .xlsx.
- Il prend en charge les requêtes SELECT, UPDATE et INSERT.
- À utiliser avec ou sans la clause WHERE et la clause LIKE.
Opération autorisée avec Fillo
Opération SELECT: L'instruction SELECT exécute la même fonction, comme elle le fait pour extraire les valeurs d'une table et les afficher à l'utilisateur final, de la même manière ici, l'instruction SELECT renvoie des données à partir d'une feuille Excel.
Syntaxe:
SELECT * From Sheet Name
Opération UPDATE: L'instruction UPDATE modifie les enregistrements existants dans la feuille Excel.
lequel des énoncés suivants est vrai pour un test de systèmes?
Syntaxe:
UPDATE sheet1 Set Column Name= ‘Value’
Opération INSERT: L'instruction INSERT insère un nouvel enregistrement dans une feuille Excel.
Syntaxe:
INSERT INTO Sheet Name (ColumnName1,ColumnName2) VALUES (‘Val1’,’Val2’)
Effectuez les mêmes opérations avec les opérateurs WHERE et LIKE:
- 'SELECT * depuis le nom de la feuille où ID = 1 et nom = 'Jésus''
- 'SELECT * à partir du nom de la feuille où colonne1 = valeur1 et colonne2 = valeur2 et colonne3 = valeur3'
- 'UPDATE Sheet Name Set Country = 'UK' where ID = 10 and name = 'Jesus'»
- 'SELECT * à partir du nom de la feuille où le nom comme' Jes% ''
Étapes d'exécution à suivre pour l'opération SELECT / INSERT / UPDATE:
#1) // Créer un objet de classe Fillo.
Fillo fillo = new Fillo();
#deux) // Crée un objet pour la classe Connection et utilise la méthode getConnection () définie dans la classe Fillo, pour établir la connexion entre la feuille Excel et l'API Fillo.
Connection connection = fillo.getConnection(”excelPath”);
# 3) // Sélectionnez toutes les valeurs présentes dans une feuille. Ceux qui sont présents dans Excel et stockent sa sortie dans une variable chaîne.
String strSelectQuerry = 'Select * from SheetName';
# 4) // exécute la requête Select et stocke le résultat dans une classe Recordset présente dans l'API Fillo.
Recordset recordset =connection.executeQuery(strSelectQuerry);
# 5) // utilise la boucle while pour parcourir toutes les colonnes et lignes disponibles dans la feuille présente à l'intérieur du fichier excel.
while(recordset.next()){ // through getfield() method retrieve the data present in a particular column System.out.println(recordset.getField('Column1')); }
# 6) // Utilisez une requête de mise à jour pour mettre à jour les détails dans le fichier Excel.
String strUpdateQuerry = 'Update Data Set SiteTitle = 'SoftwareTestingHelp.com' '; connection.executeUpdate (strUpdateQuerry);
# 7) // Utilisez Insérer une requête pour insérer des données dans la feuille Excel.
String strInsertQuerry = 'INSERT INTO Data (SiteTitle,SiteTopic) Values('Bharat','NewDelhi')'; connection.executeUpdate (strInsertQuerry);
# 8) // ferme le jeu d'enregistrements pour éviter une fuite de mémoire.
recordset. Close();
# 9) // ferme la connexion pour éviter une fuite de mémoire.
connection. Close();
En utilisant maintenant les étapes ci-dessus, dans le cadre Selenium, nous allons récupérer les valeurs des lignes et des colonnes stockées dans un fichier Excel à savoir «TestFile.xlsx», et entrer la valeur dans un site de démonstration: https://wordpress.com/start/about?ref=create-blog-lp
Feuille Excel contenant des valeurs de ligne: 'Nouvelle aide au test' et 'Testing_Related_Contents'
Fichier Excel placé dans le dossier Projet:
Code sélénium
Le code Selenium complet, qui récupère la valeur de la feuille Excel et des entrées dans le site de test, est donné ci-dessous:
package softwareTestingHelp.Com; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import com.codoid.products.exception.FilloException; import com.codoid.products.fillo.Connection; import com.codoid.products.fillo.Fillo; import com.codoid.products.fillo.Recordset; public class ReadWriteExcel { static WebDriver driver; //demo site -https://wordpress.com/start/about?ref=create-blog-lp //download jar file - https://mvnrepository.com/artifact/com.codoid.products/fillo publicstaticvoid main(String args()) throwsInterruptedException, FilloException{ //Calling up the GoogleChrome driver System.setProperty('webdriver.chrome.driver', 'D:\Srinivas\New folder\exe\chromedriver.exe'); driver = newChromeDriver(); //Opening the demo site - wordpress.com driver.get('https://wordpress.com/start/about?ref=create-blog-lp'); //Locating the Test data excel file String excelPath = '.\Data\TestFile.xlsx'; System.out.println(excelPath); //Create an Object of Fillo Class Fillo fillo = newFillo(); //Create an Object for Connection class and use getConnection() //method defined inside Fillo class, to establish connection between excelsheet and Fillo API’s. Connection connection = fillo.getConnection(excelPath); //Select all the values present in a sheet, which is present inside the excel and store its output in a String variable String strSelectQuerry = 'Select * from Data'; System.out.println(strSelectQuerry); //Execute the Select query and store the result in a Recordset class present in Fillo API. Recordset recordset =null; recordset = connection.executeQuery(strSelectQuerry); //use while loop to iterate through all columns and rows available in sheet present inside excel file while(recordset.next()){ System.out.println('Column 1 = ' +recordset.getField('SiteTitle')); String siteTitle = recordset.getField('SiteTitle'); driver.findElement(By.xpath('//input(@name='siteTitle')')).clear(); driver.findElement(By.xpath('//input(@name='siteTitle')')).sendKeys(siteTitle) ; System.out.println('Column 2 = ' +recordset.getField('SiteTopic')); String siteTopic = recordset.getField('SiteTopic'); driver.findElement(By.xpath('//input(@name='siteTopic')')).clear(); driver.findElement(By.xpath('//input(@name='siteTopic')')).sendKeys(siteTopic) ; connection.close(); } //Use update query to update the details in excel file Connection connection1 = fillo.getConnection(excelPath); System.out.println('Column 1 value before Update clause = ' +recordset.getField('SiteTitle')); String strUpdateQuerry = 'Update Data Set SiteTitle = 'SoftwareTestingHelp.com' '; System.out.println(strUpdateQuerry); connection1.executeUpdate(strUpdateQuerry); System.out.println('Column 1 value after Update clause = ' +recordset.getField('SiteTitle')); //Use Insert query to update the data in excel sheet Connection connection2 = fillo.getConnection(excelPath); System.out.println('Column 1 and column 2 value before insert clause = ' +recordset.getField('SiteTitle') +recordset.getField('siteTopic')); String strInsertQuerry = 'INSERT INTO Data (SiteTitle,SiteTopic) Values('Bharat','NewDelhi')'; System.out.println(strInsertQuerry); connection2.executeUpdate(strInsertQuerry); System.out.println('Column 1 and column 2 value after insert clause = ' +recordset.getField('SiteTitle') +recordset.getField('siteTopic')); } }
Instantané du code en cours d'exécution
Sortie de code qui montre le résultat de l'instruction SQL:
Fichier Excel après l'opération de mise à jour et d'insertion:
Site de démonstration où nous avons récupéré des données d'Excel et insérées dans le site:
jointure interne jointure externe jointure gauche jointure droite
Conclusion
- Fillo est une API java très utile pour extraire des données d'une feuille Excel et elle prend en charge les fichiers Excel .xls ainsi que .xlsx.
- Il prend en charge les instructions SELECT, UPDATE et INSERT.
- Soyez prudent lors de l'édition du fichier Excel. Si des lignes ou des colonnes ne sont pas nécessaires, supprimez-les.
- Si vous effacez simplement les valeurs des lignes et des colonnes sans supprimer la ligne entière, l'API supposera que les champs ont la valeur et essaiera de récupérer la valeur des lignes et des colonnes et en retour, nous obtiendrons des valeurs vides.
- Enfin, n'oubliez pas de fermer la connexion une fois que vous avez terminé de récupérer les valeurs d'Excel.
Bonne lecture!!
lecture recommandée
- Introduction à Selenium WebDriver - Tutoriel Selenium # 8
- Top 25 des commandes Selenium WebDriver que vous devez connaître
- 10 meilleurs outils de test d'API en 2021 (outils de test d'API SOAP et REST)
- Tutoriel JAVA pour les débutants: plus de 100 tutoriels vidéo Java pratiques
- Top 90 des questions et réponses d'entretien SQL (DERNIERES)
- 30+ meilleurs tutoriels sur Selenium: Apprenez le sélénium avec de vrais exemples
- Création du framework Selenium et accès aux données de test à partir d'Excel - Tutoriel Selenium # 21
- Framework basé sur les données dans Selenium WebDriver à l'aide d'Apache POI