how read write data from excel sheet selenium web driver
I den här självstudien lär du dig att läsa och skriva data från en Excel-fil i Selenium WebDriver med hjälp av FILLO API och SQL-uttalanden.
Att läsa eller skriva data är en av de vanligaste operationerna, antingen att hämta värden från databastabeller eller hämta värden från ett Excel-ark och använda dem för att utföra analyser.
I den här artikeln pratar vi om att hämta värden från en excel-fil med SQL-uttalanden och FILLO API.
Vad du kommer att lära dig:
SON API Översikt
FILLO är ett Java API som används för att hämta data från Excel-filer. Med användning av FILLO API blir parametreringen väldigt lätt, dvs att köra dina testfall i Selen med en annan uppsättning data.
gratis programvara för att rippa DVD till MP4
Innan detta använde vi JXL API för att göra parametreringen, senare kom apache-POI på marknaden, och i båda dessa API: er måste vi skriva stor kod, för att korsa raderna och kolumnerna och hämta de värden som är lagrade i ett excel-ark.
Men nu, med detta nya FILLO API, behöver du inte oroa dig för storleken på rader och kolumner, allt kommer att tas om hand av API internt. Du behöver bara ringa de klasser som definierats i API: et och deklarera dina testdata i Excel-filen. Se den officiella webbplatsen för dokumentation och nedladdning av jar-filen- SON Java Library
Om du använder Maven, använd sedan Maven-beroendet.
FILLO burk med Maven Dependency
Start
- Det är ett Excel-API för Java-språk.
- Den stöder .xls- och .xlsx-filer.
- Den stöder SELECT-, UPDATE- och INSERT-frågor.
- Använd med eller utan WHERE-satsen och LIKE-satsen.
Drift tillåten med Fillo
VÄLJ drift: SELECT-satsen utför samma funktion, som vid hämtning av värden från en tabell och visning för slutanvändaren, på samma sätt som SELECT-satsen här returnerar data från ett excel-ark.
Syntax:
SELECT * From Sheet Name
UPPDATERING: UPDATE-uttalande ändrar befintliga poster i excel-arket.
Syntax:
UPDATE sheet1 Set Column Name= ‘Value’
INSERT-drift: INSERT-uttalande infogar en ny post i ett excel-ark.
Syntax:
INSERT INTO Sheet Name (ColumnName1,ColumnName2) VALUES (‘Val1’,’Val2’)
Utför samma operationer med WHERE- och LIKE-operatörerna:
- “VÄLJ * från arknamn där ID = 1 och namn =’ Jesus '”
- “VÄLJ * från arknamn där kolumn1 = värde1 och kolumn2 = värde2 och kolumn3 = värde3”
- “UPDATE Sheet Name Set Country =’ UK ’where ID = 10 and name =’ Jesus '”
- “VÄLJ * från arknamn där namn som“ Jes% ””
Utförandesteg som ska följas för SELECT / INSERT / UPDATE-operation:
# 1) // Skapa ett objekt av Fillo-klass.
Fillo fillo = new Fillo();
#två) // Skapa ett objekt för anslutningsklass och använd getConnection () -metoden definierad i Fillo-klassen för att upprätta anslutningen mellan Excel-ark och Fillo API: er.
Connection connection = fillo.getConnection(”excelPath”);
# 3) // Välj alla värden som finns i ett ark. De som finns i excel och lagrar dess utdata i en strängvariabel.
String strSelectQuerry = 'Select * from SheetName';
# 4) // exekvera Select-frågan och lagra resultatet i en Recordset-klass som finns i Fillo API.
Recordset recordset =connection.executeQuery(strSelectQuerry);
# 5) // use while loop för att itera igenom alla kolumner och rader som finns 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) // Använd en uppdateringsfråga för att uppdatera detaljerna i excel-filen.
String strUpdateQuerry = 'Update Data Set SiteTitle = 'SoftwareTestingHelp.com' '; connection.executeUpdate (strUpdateQuerry);
# 7) // Använd Infoga fråga för att infoga data i excel-arket.
String strInsertQuerry = 'INSERT INTO Data (SiteTitle,SiteTopic) Values('Bharat','NewDelhi')'; connection.executeUpdate (strInsertQuerry);
# 8) // stäng inspelningen för att undvika minnesläckage.
recordset. Close();
# 9) // stäng anslutningen för att undvika minnesläckage.
connection. Close();
Nu använder vi stegen ovan, i Selenium-ramverket, vi hämtar värdena på rader och kolumner som är lagrade i en excel-fil, nämligen “TestFile.xlsx”, och anger värdet på en demosida: https://wordpress.com/start/about?ref=create-blog-lp
Excel-ark med radvärden: 'Ny testhjälp' och 'Testing_Related_Contents'
Excel-fil placerad i projektmappen:
Selenkod
Den fullständiga Selen-koden, som hämtar värdet från Excel-ark och ingångar i testplatsen ges nedan:
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')); } }
Ögonblicksbild av löpningskoden
Kodutdata som visar resultatet av SQL-satsen:
Excel-fil efter uppdatering och infogning utförs:
Demowebbplats där vi hämtade data från excel och satte in på webbplatsen:
c # intervjufrågor för erfarna
Slutsats
- Fillo är ett mycket användbart Java API för att extrahera data från ett Excel-ark och det stöder både .xls och .xlsx Excel-filer.
- Den stöder SELECT-, UPDATE- och INSERT-uttalanden.
- Var försiktig när du redigerar Excel-filen. Om det inte krävs några rader eller kolumner raderar du dem.
- Om du bara raderar värdena från raderna och kolumnerna utan att radera hela raden, antar API: et att fälten har värdet och försöker hämta värdet från raderna och kolumnerna och i gengäld får vi tomma värden.
- Slutligen, glöm inte att stänga anslutningen när du är klar med att hämta värden från excel.
Glad läsning!!
Rekommenderad läsning
- Introduktion till Selen WebDriver - Selen Tutorial # 8
- Topp 25 Selen WebDriver-kommandon som du borde veta
- De 10 bästa API-testverktygen 2021 (SOAP och REST API-testverktyg)
- JAVA-handledning för nybörjare: 100+ praktiska Java-videohandledning
- Topp 90 SQL-intervjufrågor och svar (LATEST)
- 30+ bästa selen-självstudier: Lär dig selen med riktiga exempel
- Selen Framework Creation and Accessing Test Data from Excel - Selenium Tutorial # 21
- Datadriven ram i Selen WebDriver med hjälp av Apache POI