how read write data from excel sheet selenium web driver
Σε αυτό το σεμινάριο, θα μάθετε να διαβάζετε και να γράφετε δεδομένα από ένα αρχείο Excel στο Selenium WebDriver χρησιμοποιώντας τις δηλώσεις FILLO API και SQL.
Η ανάγνωση ή η εγγραφή δεδομένων είναι μια από τις πιο συχνά χρησιμοποιούμενες λειτουργίες, είτε ανάκτηση τιμών από πίνακες βάσης δεδομένων είτε ανάκτηση τιμών από ένα φύλλο excel και χρήση τους για την εκτέλεση αναλυτικών στοιχείων.
Σε αυτό το άρθρο μιλάμε, ανάκτηση τιμών από ένα αρχείο excel χρησιμοποιώντας δηλώσεις SQL και FILLO API.
Τι θα μάθετε:
Επισκόπηση SON API
Το FILLO είναι ένα Java API που χρησιμοποιείται για την ανάκτηση δεδομένων από αρχεία Excel. Με τη χρήση του FILLO API, η παραμετροποίηση γίνεται πολύ εύκολη, δηλαδή η εκτέλεση των δοκιμαστικών σας περιπτώσεων στο Selenium με ένα διαφορετικό σύνολο δεδομένων.
Πριν από αυτό, χρησιμοποιήσαμε το JXL API για να κάνουμε παραμετροποίηση, αργότερα το apache POI μπήκε στην αγορά και και στα δύο αυτά API πρέπει να γράψουμε μεγάλο κώδικα, για να διασχίσουμε τις σειρές και τις στήλες και να πάρουμε τις τιμές που είναι αποθηκευμένες σε ένα φύλλο excel.
Αλλά τώρα, με αυτό το νέο API FILLO, δεν χρειάζεται να ανησυχείτε για το μέγεθος των σειρών και των στηλών, όλα θα φροντίζονται από το API εσωτερικά. Απλώς πρέπει να καλέσετε τις τάξεις που ορίζονται στο API και να δηλώσετε τα δεδομένα δοκιμής σας στο αρχείο excel. Ανατρέξτε στον επίσημο ιστότοπο για τεκμηρίωση και λήψη του αρχείου βάζου- Βιβλιοθήκη SON Java
Εάν χρησιμοποιείτε το Maven, χρησιμοποιήστε την εξάρτηση Maven.
FILLO βάζο με Maven Dependency
αρχή
- Είναι ένα API excel για τη γλώσσα Java.
- Υποστηρίζει αρχεία .xls και .xlsx.
- Υποστηρίζει SELECT, UPDATE και INSERT ερωτήματα.
- Χρησιμοποιήστε με ή χωρίς τον όρο WHERE και LIKE.
Επιτρέπεται η λειτουργία με το Fillo
SELECT Λειτουργία: Η δήλωση SELECT εκτελεί την ίδια λειτουργία, όπως κάνει στη λήψη των τιμών από έναν πίνακα και εμφάνιση στον τελικό χρήστη, με τον ίδιο τρόπο εδώ η δήλωση SELECT επιστρέφει δεδομένα από ένα φύλλο excel.
Σύνταξη:
SELECT * From Sheet Name
ΛΕΙΤΟΥΡΓΙΑ ΕΝΗΜΕΡΩΣΗΣ: Η δήλωση UPDATE τροποποιεί τις υπάρχουσες εγγραφές στο φύλλο excel.
Σύνταξη:
UPDATE sheet1 Set Column Name= ‘Value’
ΛΕΙΤΟΥΡΓΙΑ ΕΙΣΑΓΩΓΗΣ: Η δήλωση INSERT εισάγει μια νέα εγγραφή σε ένα φύλλο excel.
Σύνταξη:
INSERT INTO Sheet Name (ColumnName1,ColumnName2) VALUES (‘Val1’,’Val2’)
Εκτελέστε τις ίδιες λειτουργίες με τους τελεστές WHERE και LIKE:
- 'SELECT * από το όνομα φύλλου όπου το ID = 1 και το όνομα =' Jesus ''
- 'ΕΠΙΛΟΓΗ * από όνομα φύλλου όπου στήλη1 = τιμή1 και στήλη2 = τιμή2 και στήλη3 = τιμή3'
- 'ΕΝΗΜΕΡΩΣΗ Ονόματος Φύλλου Ορίστε Χώρα =' ΗΒ 'όπου ID = 10 και όνομα =' Ιησούς ''
- 'SELECT * από το Sheet Name όπου Όνομα όπως' Jes% ''
Βήματα εκτέλεσης που πρέπει να ακολουθηθούν για τη λειτουργία SELECT / INSERT / UPDATE:
# 1) // Δημιουργήστε ένα αντικείμενο της κλάσης Fillo.
Fillo fillo = new Fillo();
#δύο) // Δημιουργήστε μια κλάση Object for Connection και χρησιμοποιήστε τη μέθοδο getConnection () που ορίζεται στην κλάση Fillo, για να δημιουργήσετε τη σύνδεση μεταξύ του φύλλου excel και των API Fillo.
Connection connection = fillo.getConnection(”excelPath”);
# 3) // Επιλέξτε όλες τις τιμές που υπάρχουν σε ένα φύλλο. Εκείνοι που βρίσκονται μέσα στο excel και αποθηκεύουν την παραγωγή του σε μια μεταβλητή συμβολοσειράς.
String strSelectQuerry = 'Select * from SheetName';
# 4) // εκτελέστε το ερώτημα Select και αποθηκεύστε το αποτέλεσμα σε μια κλάση Recordset που υπάρχει στο Fillo API.
Recordset recordset =connection.executeQuery(strSelectQuerry);
# 5) // χρησιμοποιήστε το while loop για να επαναλάβετε όλες τις στήλες και τις σειρές που είναι διαθέσιμες στο φύλλο που υπάρχει μέσα στο αρχείο excel.
while(recordset.next()){ // through getfield() method retrieve the data present in a particular column System.out.println(recordset.getField('Column1')); }
# 6) // Χρησιμοποιήστε ένα ερώτημα ενημέρωσης για να ενημερώσετε τις λεπτομέρειες στο αρχείο excel.
String strUpdateQuerry = 'Update Data Set SiteTitle = 'SoftwareTestingHelp.com' '; connection.executeUpdate (strUpdateQuerry);
# 7) // Χρησιμοποιήστε το Εισαγωγή ερωτήματος για να εισαγάγετε δεδομένα στο φύλλο excel.
String strInsertQuerry = 'INSERT INTO Data (SiteTitle,SiteTopic) Values('Bharat','NewDelhi')'; connection.executeUpdate (strInsertQuerry);
# 8) // κλείστε το σετ εγγραφών για να αποφύγετε διαρροή μνήμης.
recordset. Close();
# 9) // κλείστε τη σύνδεση για να αποφύγετε τη διαρροή μνήμης.
connection. Close();
Τώρα χρησιμοποιώντας τα παραπάνω βήματα, στο πλαίσιο Selenium, θα πάρουμε τις τιμές των σειρών και των στηλών που είναι αποθηκευμένες σε ένα αρχείο excel, δηλαδή 'TestFile.xlsx' και θα εισαγάγουμε την τιμή σε έναν ιστότοπο επίδειξης: https://wordpress.com/start/about?ref=create-blog-lp
Φύλλο Excel με τιμές γραμμής: 'Νέα δοκιμή βοήθειας' και 'Δοκιμή_Related_Contents'
Το αρχείο Excel τοποθετήθηκε στο φάκελο Project:
Κωδικός σεληνίου
Ο πλήρης κωδικός Selenium, ο οποίος παίρνει την τιμή από το φύλλο excel και τις εισόδους στον ιστότοπο δοκιμής δίνεται παρακάτω:
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')); } }
Στιγμιότυπο του κώδικα εκτέλεσης
Έξοδος κώδικα που δείχνει το αποτέλεσμα της δήλωσης SQL:
πώς να ανοίξετε το αρχείο .bin στα παράθυρα
Το αρχείο Excel μετά την εκτέλεση της Ενημέρωσης και Εισαγωγής:
Επίδειξη ιστότοπου όπου συλλέξαμε δεδομένα από το excel και εισαγάγαμε στον ιστότοπο:
συμπέρασμα
- Το Fillo είναι ένα πολύ χρήσιμο java API για την εξαγωγή δεδομένων από ένα φύλλο excel και υποστηρίζει τόσο αρχεία .xls όσο και .xlsx Excel.
- Υποστηρίζει SELECT, UPDATE και INSERT δηλώσεις.
- Να είστε προσεκτικοί κατά την επεξεργασία του αρχείου excel. Εάν δεν απαιτούνται σειρές ή στήλες, διαγράψτε τις.
- Εάν απλώς διαγράψετε τις τιμές από τις σειρές και τις στήλες χωρίς να διαγράψετε ολόκληρη τη σειρά, τότε το API θα υποθέσει ότι τα πεδία έχουν την τιμή και θα προσπαθήσουν να πάρουν την τιμή από τις σειρές και τις στήλες και σε αντάλλαγμα, θα λάβουμε κενές τιμές.
- Τέλος, μην ξεχάσετε να κλείσετε τη σύνδεση μόλις τελειώσετε με τη λήψη των τιμών από το excel.
Καλή ανάγνωση !!
Συνιστώμενη ανάγνωση
- Εισαγωγή στο Selenium WebDriver - Selenium Tutorial # 8
- Κορυφαίες 25 εντολές Selenium WebDriver που πρέπει να γνωρίζετε
- 10 καλύτερα εργαλεία δοκιμών API το 2021 (SOAP και REST API Testing Tools)
- Εκπαιδευτικό πρόγραμμα JAVA για αρχάριους: 100+ πρακτικά εκπαιδευτικά βίντεο Java
- Top 90 ερωτήσεις και απαντήσεις συνέντευξης SQL (ΝΕΟΤΕΡΑ)
- 30+ καλύτερα σεμινάρια σεληνίου: Μάθετε το σελήνιο με πραγματικά παραδείγματα
- Δημιουργία Selenium Framework και Πρόσβαση σε δεδομένα δοκιμών από το Excel - Selenium Tutorial # 21
- Πλαίσιο βάσει δεδομένων στο Selenium WebDriver με χρήση Apache POI