how read write data from excel sheet selenium web driver
In diesem Lernprogramm lernen Sie, Daten aus einer Excel-Datei in Selenium WebDriver mithilfe der FILLO-API- und SQL-Anweisungen zu lesen und zu schreiben.
Das Lesen oder Schreiben von Daten ist eine der am häufigsten verwendeten Operationen, bei der entweder Werte aus Datenbanktabellen oder Werte aus einer Excel-Tabelle abgerufen und für die Durchführung von Analysen verwendet werden.
In diesem Artikel wird das Abrufen von Werten aus einer Excel-Datei mithilfe von SQL-Anweisungen und der FILLO-API beschrieben.
Was du lernen wirst:
SON API Übersicht
FILLO ist eine Java-API, die zum Abrufen von Daten aus Excel-Dateien verwendet wird. Mit der Verwendung der FILLO-API wird die Parametrisierung sehr einfach, d. H. Das Ausführen Ihrer Testfälle in Selen mit einem anderen Datensatz.
Zuvor verwendeten wir die JXL-API für die Parametrisierung, später kam der Apache-POI auf den Markt, und in beiden APIs müssen wir großen Code schreiben, die Zeilen und Spalten durchlaufen und die in einem Excel-Blatt gespeicherten Werte abrufen.
Mit dieser neuen FILLO-API müssen Sie sich jedoch keine Gedanken mehr über die Größe der Zeilen und Spalten machen. Die API kümmert sich intern um alles. Sie müssen nur die in der API definierten Klassen aufrufen und Ihre Testdaten in der Excel-Datei deklarieren. Auf der offiziellen Website finden Sie Dokumentation und Download der JAR-Datei. SON Java Library
Wenn Sie Maven verwenden, verwenden Sie die Maven-Abhängigkeit.
FILLO Glas mit Maven Abhängigkeit
Start
- Es ist eine Excel-API für die Java-Sprache.
- Es unterstützt XLS- und XLSX-Dateien.
- Es unterstützt SELECT-, UPDATE- und INSERT-Abfragen.
- Verwendung mit oder ohne WHERE-Klausel und LIKE-Klausel.
Operation mit Fillo erlaubt
SELECT Operation: Die SELECT-Anweisung führt dieselbe Funktion aus wie beim Abrufen der Werte aus einer Tabelle und der Anzeige für den Endbenutzer. Auf diese Weise gibt die SELECT-Anweisung Daten aus einer Excel-Tabelle zurück.
b Baum und b + Baum
Syntax :
SELECT * From Sheet Name
UPDATE-Betrieb: Die UPDATE-Anweisung ändert die vorhandenen Datensätze in der Excel-Tabelle.
Syntax:
UPDATE sheet1 Set Column Name= ‘Value’
INSERT-Vorgang: Die INSERT-Anweisung fügt einen neuen Datensatz in eine Excel-Tabelle ein.
Syntax:
INSERT INTO Sheet Name (ColumnName1,ColumnName2) VALUES (‘Val1’,’Val2’)
Führen Sie dieselben Operationen mit den Operatoren WHERE und LIKE aus:
- 'SELECT * from Sheet Name wobei ID = 1 und Name = 'Jesus''
- 'SELECT * from Sheet Name wobei Spalte1 = Wert1 und Spalte2 = Wert2 und Spalte3 = Wert3'
- 'UPDATE Sheet Name Set Country =' UK 'wobei ID = 10 und Name =' Jesus '.'
- 'SELECT * from Sheet Name, wobei Name wie 'Jes%''
Ausführungsschritte für den SELECT / INSERT / UPDATE-Vorgang:
# 1) // Ein Objekt der Fillo-Klasse erstellen.
Fillo fillo = new Fillo();
#zwei) // Erstellen Sie ein Objekt für die Verbindungsklasse und verwenden Sie die in der Fillo-Klasse definierte Methode getConnection (), um die Verbindung zwischen der Excel-Tabelle und den Fillo-APIs herzustellen.
Connection connection = fillo.getConnection(”excelPath”);
#3) // Alle in einem Blatt vorhandenen Werte auswählen. Diejenigen, die im Excel vorhanden sind und dessen Ausgabe in einer Zeichenfolgenvariablen speichern.
String strSelectQuerry = 'Select * from SheetName';
# 4) // Führen Sie die Select-Abfrage aus und speichern Sie das Ergebnis in einer Recordset-Klasse, die in der Fillo-API vorhanden ist.
Recordset recordset =connection.executeQuery(strSelectQuerry);
# 5) // Verwenden Sie die while-Schleife, um alle Spalten und Zeilen zu durchlaufen, die in dem in der Excel-Datei vorhandenen Blatt verfügbar sind.
while(recordset.next()){ // through getfield() method retrieve the data present in a particular column System.out.println(recordset.getField('Column1')); }
# 6) // Verwenden Sie eine Aktualisierungsabfrage, um die Details in der Excel-Datei zu aktualisieren.
String strUpdateQuerry = 'Update Data Set SiteTitle = 'SoftwareTestingHelp.com' '; connection.executeUpdate (strUpdateQuerry);
# 7) // Verwenden Sie die Abfrage Einfügen, um Daten in die Excel-Tabelle einzufügen.
String strInsertQuerry = 'INSERT INTO Data (SiteTitle,SiteTopic) Values('Bharat','NewDelhi')'; connection.executeUpdate (strInsertQuerry);
# 8) // Schließen Sie das Recordset, um einen Speicherverlust zu vermeiden.
recordset. Close();
# 9) // Verbindung schließen, um Speicherverlust zu vermeiden.
connection. Close();
Mit den obigen Schritten rufen wir nun im Selenium-Framework die Werte von Zeilen und Spalten ab, die in einer Excel-Datei gespeichert sind, nämlich 'TestFile.xlsx', und geben den Wert in eine Demo-Site ein: https://wordpress.com/start/about?ref=create-blog-lp
Excel-Tabelle mit Zeilenwerten: 'Neue Testhilfe' und 'Testing_Related_Contents'
Excel-Datei im Projektordner:
Selen-Code
Der vollständige Selenium-Code, der den Wert aus dem Excel-Blatt und den Eingaben auf der Teststelle abruft, ist unten angegeben:
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')); } }
Schnappschuss des laufenden Codes
Code-Ausgabe, die das Ergebnis der SQL-Anweisung anzeigt:
Excel-Datei nach dem Aktualisieren und Einfügen wird ausgeführt:
Demo-Website, auf der wir Daten aus dem Excel abgerufen und in die Website eingefügt haben:
Fazit
- Fillo ist eine sehr nützliche Java-API zum Extrahieren von Daten aus einer Excel-Tabelle und unterstützt sowohl XLS- als auch XLSX-Excel-Dateien.
- Es unterstützt die Anweisungen SELECT, UPDATE und INSERT.
- Seien Sie vorsichtig beim Bearbeiten der Excel-Datei. Wenn keine Zeilen oder Spalten erforderlich sind, löschen Sie diese.
- Wenn Sie nur die Werte aus den Zeilen und Spalten löschen, ohne die gesamte Zeile zu löschen, geht die API davon aus, dass die Felder den Wert haben, und versucht, den Wert aus den Zeilen und Spalten abzurufen. Im Gegenzug erhalten wir leere Werte.
- Vergessen Sie nicht, die Verbindung zu schließen, wenn Sie mit dem Abrufen der Werte aus dem Excel fertig sind.
Fröhliches Lesen!!
Literatur-Empfehlungen
- Einführung in Selenium WebDriver - Selenium Tutorial # 8
- Top 25 Selenium WebDriver-Befehle, die Sie kennen sollten
- 10 besten API-Testtools im Jahr 2021 (SOAP- und REST-API-Testtools)
- JAVA-Tutorial für Anfänger: Über 100 praktische Java-Video-Tutorials
- Top 90 Fragen und Antworten zu SQL-Interviews (NEUESTE)
- 30+ beste Selen-Tutorials: Lernen Sie Selen anhand realer Beispiele
- Selenium Framework Erstellung und Zugriff auf Testdaten aus Excel - Selenium Tutorial # 21
- Datengesteuertes Framework in Selenium WebDriver mit Apache POI