how read write data from excel sheet selenium web driver
I denne vejledning lærer du at læse og skrive data fra en Excel-fil i Selenium WebDriver ved hjælp af FILLO API og SQL-sætninger.
Læsning eller skrivning af data er en af de mest anvendte operationer, enten at hente værdier fra databasetabeller eller hente værdier fra et excel-ark og bruge dem til at udføre analyser.
I denne artikel taler vi om at hente værdier fra en excel-fil ved hjælp af SQL-sætninger og FILLO API.
Hvad du vil lære:
SON API Oversigt
FILLO er en Java API, der bruges til at hente data fra Excel-filer. Med brugen af FILLO API bliver parametrering meget let, dvs. at køre dine testcases i Selenium med et andet datasæt.
Forud for dette brugte vi JXL API til parametrering, senere kom apache-POI på markedet, og i begge disse API'er er vi nødt til at skrive stor kode for at krydse rækker og kolonner og hente de værdier, der er gemt i et excel-ark.
Men nu, med denne nye FILLO API, er der ingen grund til at bekymre sig om størrelsen på rækker og kolonner, alt bliver taget hånd om af API internt. Du skal bare ringe til de klasser, der er defineret i API'en og erklære dine testdata i excel-filen. Se det officielle websted for dokumentation og download af jar-filen- SON Java-bibliotek
Hvis du bruger Maven, skal du bruge Maven-afhængigheden.
FILLO krukke med Maven Dependency
Start
- Det er en excel API til Java-sprog.
- Det understøtter .xls og .xlsx filer.
- Det understøtter SELECT, UPDATE og INSERT forespørgsler.
- Brug med eller uden WHERE-klausulen og LIKE-klausulen.
Drift tilladt med Fillo
VÆLG operation: SELECT-sætning udfører den samme funktion, som det gør ved at hente værdierne fra en tabel og vise til slutbrugeren, på samme måde returnerer SELECT-sætningen data fra et excel-ark.
Syntaks:
hvad er systemtest med eksempel
SELECT * From Sheet Name
OPDATERING: UPDATE-sætning ændrer de eksisterende poster i excel-arket.
Syntaks:
UPDATE sheet1 Set Column Name= ‘Value’
INSERT-drift: INSERT-sætning indsætter en ny post i et excel-ark.
Syntaks:
INSERT INTO Sheet Name (ColumnName1,ColumnName2) VALUES (‘Val1’,’Val2’)
Udfør de samme operationer med WHERE- og LIKE-operatørerne:
- “VÆLG * fra arknavn, hvor ID = 1 og navn =’ Jesus '”
- “VÆLG * fra arknavn, hvor kolonne1 = værdi1 og kolonne2 = værdi2 og kolonne3 = værdi3”
- “UPDATE Sheet Name Set Country =’ UK ’where ID = 10 and name =’ Jesus '”
- “VÆLG * fra arknavn, hvor navn som‘ Jes% '”
Udførelsestrin, der skal følges for SELECT / INSERT / UPDATE-operation:
# 1) // Opret et objekt af Fillo-klasse.
Fillo fillo = new Fillo();
#to) // Opret et objekt til Connection-klasse, og brug metoden getConnection (), der er defineret i Fillo-klassen, til at etablere forbindelsen mellem excel-arket og Fillo API'er.
Connection connection = fillo.getConnection(”excelPath”);
# 3) // Vælg alle de værdier, der findes i et ark. De tilstedeværende inde i excel og gemmer dens output i en strengvariabel.
String strSelectQuerry = 'Select * from SheetName';
# 4) // udfør Select-forespørgslen og gem resultatet i en Recordset-klasse, der er til stede i Fillo API.
Recordset recordset =connection.executeQuery(strSelectQuerry);
# 5) // use while loop til at gentage alle de kolonner og rækker, der er tilgængelige i arket inde i excel-filen.
while(recordset.next()){ // through getfield() method retrieve the data present in a particular column System.out.println(recordset.getField('Column1')); }
# 6) // Brug en opdateringsforespørgsel til at opdatere detaljerne i excel-filen.
String strUpdateQuerry = 'Update Data Set SiteTitle = 'SoftwareTestingHelp.com' '; connection.executeUpdate (strUpdateQuerry);
# 7) // Brug Indsæt forespørgsel til at indsætte data i excel-arket.
String strInsertQuerry = 'INSERT INTO Data (SiteTitle,SiteTopic) Values('Bharat','NewDelhi')'; connection.executeUpdate (strInsertQuerry);
# 8) // luk pladesættet for at undgå hukommelseslækage.
recordset. Close();
# 9) // luk forbindelsen for at undgå hukommelseslækage.
connection. Close();
Brug nu ovenstående trin i Selenium-rammen og henter værdierne for rækker og kolonner, der er gemt i en excel-fil, nemlig “TestFile.xlsx”, og indtaster værdien på et demo-sted: https://wordpress.com/start/about?ref=create-blog-lp
Excel-ark med rækkeværdier: 'Ny testhjælp' og 'Test_Related_Contents'
Excel-fil placeret i projektmappen:
Selen-kode
Den komplette Selen-kode, som henter værdien fra excel-ark og input i teststedet er angivet 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')); } }
Øjebliksbillede af kørselskoden
Kodeoutput, der viser SQL-sætningsresultatet:
Excel-fil efter opdatering og indsættelse udføres:
Demo-websted, hvor vi hentede data fra excel og indsatte i webstedet:
java kodning interview spørgsmål skrive kode
Konklusion
- Fillo er en meget nyttig java API til udpakning af data fra et excel-ark, og den understøtter både .xls såvel som .xlsx Excel-filer.
- Det understøtter SELECT-, UPDATE- og INSERT-udsagn.
- Vær forsigtig, når du redigerer excel-filen. Hvis der ikke kræves nogen rækker eller kolonner, skal du slette dem.
- Hvis du bare sletter værdierne fra rækkerne og kolonnerne uden at slette hele rækken, antager API'et, at felterne har værdien og forsøger at hente værdien fra rækkerne og kolonnerne, og til gengæld får vi tomme værdier.
- Endelig glem ikke at lukke forbindelsen, når du er færdig med at hente værdierne fra excel.
God læselyst!!
Anbefalet læsning
- Introduktion til Selen WebDriver - Selen Tutorial # 8
- Top 25 Selen WebDriver-kommandoer, som du bør kende
- 10 bedste API-testværktøjer i 2021 (SOAP og REST API-testværktøjer)
- JAVA-vejledning til begyndere: 100+ praktiske Java-videovejledninger
- Top 90 SQL-spørgsmål og svar (LATEST)
- 30+ bedste selen-tutorials: Lær selen med rigtige eksempler
- Selenium Framework Creation og adgang til testdata fra Excel - Selenium Tutorial # 21
- Datadrevet ramme i Selen WebDriver ved hjælp af Apache POI