how read write data from excel sheet selenium web driver
I denne veiledningen lærer du å lese og skrive data fra en Excel-fil i Selenium WebDriver ved hjelp av FILLO API og SQL-setninger.
Lesing eller skriving av data er en av de mest brukte operasjonene, enten å hente verdier fra databasetabeller eller hente verdier fra et Excel-ark og bruke dem til å utføre analyser.
I denne artikkelen snakker vi om å hente verdier fra en excel-fil ved hjelp av SQL-setninger og FILLO API.
Hva du vil lære:
SON API Oversikt
FILLO er et Java API som brukes til å hente data fra Excel-filer. Ved bruk av FILLO API blir parameterisering veldig enkelt, dvs. kjører testsakene dine i Selen med et annet datasett.
Før dette brukte vi JXL API for å gjøre parameterisering, senere kom IP-POI ut på markedet, og i begge disse API-ene trenger vi å skrive stor kode, for å krysse radene og kolonnene og hente verdiene som er lagret i et Excel-ark.
Men nå, med denne nye FILLO API, trenger du ikke bekymre deg for størrelsen på rader og kolonner, alt blir tatt hånd om av API internt. Du trenger bare å ringe klassene som er definert i API og erklære testdataene dine i Excel-filen. Se det offisielle nettstedet for dokumentasjon og nedlasting av jar-filen- SON Java Library
Hvis du bruker Maven, bruk deretter Maven-avhengigheten.
FILLO-krukke med Maven Dependency
start
- Det er en excel API for Java-språk.
- Den støtter .xls og .xlsx filer.
- Den støtter SELECT, UPDATE og INSERT spørsmål.
- Bruk med eller uten WHERE-setningen og LIKE-setningen.
Drift tillatt med Fillo
VELG operasjon: SELECT-setning utfører den samme funksjonen, som den gjør når man henter verdiene fra en tabell og viser til sluttbrukeren, på samme måte som SELECT-setningen returnerer data fra et excel-ark.
Syntaks:
SELECT * From Sheet Name
OPPDATERING: UPDATE-setning endrer eksisterende poster i excel-arket.
Syntaks:
UPDATE sheet1 Set Column Name= ‘Value’
INSERT-drift: INSERT-setning setter inn en ny post i et excel-ark.
Syntaks:
INSERT INTO Sheet Name (ColumnName1,ColumnName2) VALUES (‘Val1’,’Val2’)
Utfør de samme operasjonene med WHERE- og LIKE-operatørene:
- “VELG * fra arkenavn hvor ID = 1 og navn =’ Jesus '”
- “VELG * fra arknavn der kolonne1 = verdi1 og kolonne2 = verdi2 og kolonne3 = verdi3”
- “UPDATE Sheet Name Set Country =’ UK ’where ID = 10 and name =’ Jesus '”
- “VELG * fra arkenavn der navnet som“ Jes% ””
Utføringstrinn som skal følges for SELECT / INSERT / UPDATE-operasjon:
#1) // Lag et objekt av Fillo-klasse.
Fillo fillo = new Fillo();
#to) // Opprett et objekt for Connection-klasse og bruk getConnection () -metoden som er definert i Fillo-klassen, for å etablere forbindelsen mellom excel-arket og Fillo API-er.
Connection connection = fillo.getConnection(”excelPath”);
# 3) // Velg alle verdiene som er tilstede i et ark. De som er tilstede i excel og lagrer utdataene i en strengvariabel.
String strSelectQuerry = 'Select * from SheetName';
# 4) // utfør Select-spørringen og lagre resultatet i en Recordset-klasse som er tilstede i Fillo API.
Recordset recordset =connection.executeQuery(strSelectQuerry);
# 5) // use while loop for å gjenta gjennom alle kolonnene og radene som er tilgjengelige i arket i excel-filen.
while(recordset.next()){ // through getfield() method retrieve the data present in a particular column System.out.println(recordset.getField('Column1')); }
# 6) // Bruk et oppdateringsspørsmål for å oppdatere detaljene i excel-filen.
String strUpdateQuerry = 'Update Data Set SiteTitle = 'SoftwareTestingHelp.com' '; connection.executeUpdate (strUpdateQuerry);
# 7) // Bruk Sett inn spørring for å sette inn data i excel-arket.
String strInsertQuerry = 'INSERT INTO Data (SiteTitle,SiteTopic) Values('Bharat','NewDelhi')'; connection.executeUpdate (strInsertQuerry);
# 8) // lukk platesettet for å unngå minnelekkasje.
recordset. Close();
# 9) // lukk forbindelsen for å unngå minnelekkasje.
connection. Close();
Ved å bruke trinnene ovenfor, i Selenium-rammeverket, henter vi verdiene til rader og kolonner som er lagret i en excel-fil, nemlig “TestFile.xlsx”, og legger inn verdien på et demoside: https://wordpress.com/start/about?ref=create-blog-lp
Excel-ark med radverdier: “Ny testhjelp” og “Testing_Related_Contents”
Excel-fil plassert i prosjektmappen:
Selen-kode
Den komplette Selen-koden, som henter verdien fra Excel-ark og innganger på teststedet, er gitt nedenfor:
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')); } }
Øyeblikksbilde av løpekoden
Kodeutgang som viser resultatet av SQL-setningen:
Excel-fil etter oppdatering og innsetting er utført:
Demo-nettsted der vi hentet data fra excel og satt inn på nettstedet:
beste gratis sikkerhetskopiprogramvare for Windows 7
Konklusjon
- Fillo er et veldig nyttig Java API for å trekke ut data fra et Excel-ark, og det støtter både .xls og .xlsx Excel-filer.
- Den støtter SELECT, UPDATE og INSERT uttalelser.
- Vær forsiktig når du redigerer Excel-filen. Hvis det ikke kreves noen rader eller kolonner, så slett dem.
- Hvis du bare sletter verdiene fra radene og kolonnene uten å slette hele raden, vil APIen anta at feltene har verdien og vil prøve å hente verdien fra radene og kolonnene, og til gjengjeld får vi blanke verdier.
- Til slutt, ikke glem å lukke forbindelsen når du er ferdig med å hente verdiene fra excel.
Glad lesning !!
Anbefalt lesing
- Introduksjon til Selen WebDriver - Selenium Tutorial # 8
- Topp 25 Selen WebDriver-kommandoer du bør vite
- 10 beste API-testverktøy i 2021 (SOAP og REST API-testverktøy)
- JAVA-opplæring for nybegynnere: 100+ praktiske Java-videoveiledninger
- Topp 90 SQL-intervjuspørsmål og svar (SISTE)
- 30+ beste selenopplæringsprogrammer: Lær selen med virkelige eksempler
- Selen Framework Creation and Accessing Test Data from Excel - Selenium Tutorial # 21
- Datadrevet rammeverk i Selenium WebDriver ved hjelp av Apache POI