how read write data from excel sheet selenium web driver
V tej vadnici se boste naučili branja in zapisovanja podatkov iz Excelove datoteke v programu Selenium WebDriver z uporabo FILLO API in stavkov SQL.
Branje ali pisanje podatkov je ena najpogosteje uporabljenih operacij, bodisi pridobivanje vrednosti iz tabel baze podatkov bodisi pridobivanje vrednosti iz excelovega lista in njihova uporaba za izvajanje analitike.
V tem članku govorimo o pridobivanju vrednosti iz datoteke excel z uporabo stavkov SQL in API-ja FILLO.
Kaj se boste naučili:
Pregled API-ja SON
FILLO je Java API, ki se uporablja za pridobivanje podatkov iz Excelovih datotek. Z uporabo API-ja FILLO postane parametrizacija zelo enostavna, tj. Izvajanje testnih primerov v programu Selenium z drugačnim naborom podatkov.
Pred tem smo za parametrizacijo uporabljali API JXL, kasneje je na trg prišel apache POI, v oba API-ja pa moramo napisati veliko kodo, da prehodimo vrstice in stolpce ter pridobimo vrednosti, shranjene v Excelovem listu.
Zdaj pa s tem novim API-jem FILLO ni treba skrbeti za velikost vrstic in stolpcev, API bo za vse poskrbel interno. Samo poklicati morate razrede, definirane v API-ju, in v datoteki excel prijaviti svoje testne podatke. Za dokumentacijo in prenos datoteke jar poiščite uradno spletno mesto SON knjižnica Java
Če uporabljate Maven, uporabite odvisnost od Mavena.
FILLO kozarec z Maven Dependency
začetek
- Je excel API za jezik Java.
- Podpira datoteke .xls in .xlsx.
- Podpira poizvedbe SELECT, UPDATE in INSERT.
- Uporabljajte z ali brez klavzule WHERE in LIKE.
Dovoljena operacija s Fillo
Operacija SELECT: Stavek SELECT izvaja enako funkcijo kot pri pridobivanju vrednosti iz tabele in prikaza končnemu uporabniku, na enak način tukaj stavek SELECT vrne podatke iz excelovega lista.
Sintaksa:
SELECT * From Sheet Name
UPDATE Operation: Stavek UPDATE spremeni obstoječe zapise v Excelovem listu.
Sintaksa:
UPDATE sheet1 Set Column Name= ‘Value’
INSERT Operacija: Stavek INSERT vstavi nov zapis v excel list.
Sintaksa:
INSERT INTO Sheet Name (ColumnName1,ColumnName2) VALUES (‘Val1’,’Val2’)
Izvedite enake postopke z operaterji WHERE in LIKE:
java intervju programi za sveže pdf
- “SELECT * from Sheet Name where ID = 1 in name = 'Jesus''
- “SELECT * iz imena lista, kjer je stolpec1 = vrednost1 in stolpec2 = vrednost2 in stolpec3 = vrednost3”
- 'UPDATE Sheet Name Set Country = 'UK' where ID = 10 and name = 'Jesus''
- 'SELECT * iz imena lista, kjer je ime, kot je' Jes% ''
Izvedbeni koraki, ki jih je treba upoštevati pri operacijah SELECT / INSERT / UPDATE:
# 1) // Ustvari predmet razreda Fillo.
Fillo fillo = new Fillo();
#two) // Ustvarimo objekt za razred Connection in z metodo getConnection (), definirano znotraj razreda Fillo, vzpostavimo povezavo med listom excel in API-ji Fillo.
Connection connection = fillo.getConnection(”excelPath”);
# 3) // Izberemo vse vrednosti na listu. Prisotni znotraj excela in njegov izhod shranijo v spremenljivko niza.
String strSelectQuerry = 'Select * from SheetName';
# 4) // izvedemo poizvedbo Select in rezultat shranimo v razred Recordset, ki je prisoten v API-ju Fillo.
Recordset recordset =connection.executeQuery(strSelectQuerry);
# 5) // z zanko while prehodimo skozi vse stolpce in vrstice, ki so na voljo na listu, ki je znotraj datoteke excel.
while(recordset.next()){ // through getfield() method retrieve the data present in a particular column System.out.println(recordset.getField('Column1')); }
# 6) // Za posodobitev podrobnosti v datoteki excel uporabite poizvedbo za posodobitev.
String strUpdateQuerry = 'Update Data Set SiteTitle = 'SoftwareTestingHelp.com' '; connection.executeUpdate (strUpdateQuerry);
# 7) // Uporabite poizvedbo Vstavi, da vstavite podatke v excel list.
String strInsertQuerry = 'INSERT INTO Data (SiteTitle,SiteTopic) Values('Bharat','NewDelhi')'; connection.executeUpdate (strInsertQuerry);
# 8) // zapremo nabor zapisov, da se izognemo puščanju pomnilnika.
recordset. Close();
# 9) // zapremo povezavo, da se izognemo puščanju pomnilnika.
connection. Close();
Zdaj z uporabo zgornjih korakov bomo v okviru Selenium pobrali vrednosti vrstic in stolpcev, shranjenih v datoteki excel, tj. 'TestFile.xlsx', in vrednost vnesli na predstavitveno spletno mesto: https://wordpress.com/start/about?ref=create-blog-lp
Excelov list z vrsticnimi vrednostmi: »Nova preizkusna pomoč« in »Testing_Related_Contents«
Datoteka Excel, shranjena v mapi Project:
Selen koda
Popolna koda selena, ki pridobi vrednost iz excelovega lista in vnosov na preskusnem mestu, je navedena spodaj:
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')); } }
Posnetek tekoče kode
Izpis kode, ki prikazuje rezultat stavka SQL:
Datoteka Excel po izvedbi posodobitve in vstavitve:
Predstavitveno spletno mesto, kjer smo iz Excela pridobili podatke in jih vstavili na spletno mesto:
Zaključek
- Fillo je zelo uporaben java API za pridobivanje podatkov iz Excelovega lista in podpira datoteke .xls in .xlsx Excel.
- Podpira stavke SELECT, UPDATE in INSERT.
- Bodite previdni pri urejanju datoteke excel. Če vrstice ali stolpci niso potrebni, jih izbrišite.
- Če vrednosti samo izbrišete iz vrstic in stolpcev, ne da bi izbrisali celotno vrstico, bo API domneval, da imajo polja vrednost, in bo poskušal pridobiti vrednost iz vrstic in stolpcev, v zameno pa bomo dobili prazne vrednosti.
- Na koncu ne pozabite zapreti povezave, ko končate s pridobivanjem vrednosti iz excela.
Veselo branje !!
Priporočeno branje
- Uvod v Selenium WebDriver - Vadnica za selenij št. 8
- Najboljših 25 ukazov Selenium WebDriver, ki bi jih morali poznati
- 10 najboljših orodij za testiranje API-jev v letu 2021 (orodja za testiranje API-jev SOAP in REST)
- JAVA Vadnica za začetnike: 100+ praktičnih Javnih video vadnic
- Najpogostejših 90 vprašanj in odgovorov na vprašanja v zvezi z SQL (NAJNOVEJ)
- 30+ najboljših vadnic o selenu: Naučite se selena z resničnimi primeri
- Ustvarjanje okvirja selena in dostop do testnih podatkov iz Excela - Vadnica za selenij št. 21
- Podatkovni okvir v programu Selenium WebDriver z uporabo Apache POI