how read write data from excel sheet selenium web driver
En aquest tutorial, aprendreu a llegir i escriure dades d’un fitxer Excel a Selenium WebDriver mitjançant instruccions SQL i API FILLO.
Llegir o escriure dades és una de les operacions més utilitzades, ja sigui obtenir valors de taules de bases de dades o obtenir valors d’un full Excel i utilitzar-los per realitzar anàlisis.
En aquest article parlem d’obtenir valors d’un fitxer Excel mitjançant instruccions SQL i API FILLO.
Què aprendreu:
Visió general de l'API SON
FILLO és una API Java que s’utilitza per obtenir dades de fitxers Excel. Amb l’ús de l’API FILLO, la parametrització es fa molt fàcil, és a dir, executar els casos de prova a Selenium amb un conjunt de dades diferent.
Abans d’això, utilitzàvem l’API JXL per fer parametritzacions, més endavant va sortir al mercat el POI d’apache i, en aquestes dues API, hem d’escriure codi gran, per recórrer les files i les columnes i obtenir els valors emmagatzemats en un full Excel.
Però ara, amb aquesta nova API FILLO, no cal que us preocupeu per la mida de les files i les columnes; tot s’aplicarà internament a l’API. Només heu de trucar a les classes definides a l’API i declarar les dades de prova al fitxer Excel. Consulteu el lloc oficial per obtenir documentació i descàrrega del fitxer jar- Biblioteca Java de SON
Si utilitzeu Maven, utilitzeu la dependència de Maven.
Pot FILLO amb dependència de Maven
començar
- És una API excel per al llenguatge Java.
- Admet fitxers .xls i .xlsx.
- Admet les consultes SELECT, UPDATE i INSERT.
- Utilitzeu-la amb o sense la clàusula WHERE i la clàusula LIKE.
Operació permesa amb Fillo
OPERACIÓ SELECCIONA: La sentència SELECT realitza la mateixa funció, tal com ho fa en obtenir els valors d'una taula i mostrar-los a l'usuari final, de la mateixa manera que la sentència SELECT retorna les dades d'un full Excel.
Sintaxi:
SELECT * From Sheet Name
ACTUALITZACIÓ Operació: La sentència UPDATE modifica els registres existents al full Excel.
Sintaxi:
UPDATE sheet1 Set Column Name= ‘Value’
INSERTAR l'operació: La instrucció INSERT insereix un registre nou en un full Excel.
Sintaxi:
INSERT INTO Sheet Name (ColumnName1,ColumnName2) VALUES (‘Val1’,’Val2’)
Realitzeu les mateixes operacions amb els operadors WHERE i LIKE:
- 'SELECCIONA * del nom del full on ID = 1 i name = 'Jesus''
- 'SELECCIÓ * del nom del full on columna1 = valor1 i columna2 = valor2 i columna3 = valor3'
- 'ACTUALITZACIÓ Nom de full del país =' Regne Unit 'on ID = 10 i nom =' Jesús '
- 'SELECCIONA * del nom del full on el nom és com' Jes% ''
Passos d'execució que cal seguir per a l'operació SELECT / INSERT / UPDATE:
# 1) // Crea un objecte de classe Fillo.
Fillo fillo = new Fillo();
# 2) // Creeu un objecte per a la classe de connexió i utilitzeu el mètode getConnection () definit a la classe Fillo per establir la connexió entre el full Excel i les API de Fillo.
Connection connection = fillo.getConnection(”excelPath”);
# 3) // Seleccioneu tots els valors presents en un full. Els presents a l'excel i emmagatzemen la seva sortida en una variable de cadena.
String strSelectQuerry = 'Select * from SheetName';
# 4) // executeu la consulta Select i emmagatzemeu el resultat en una classe Recordset present a l'API Fillo.
Recordset recordset =connection.executeQuery(strSelectQuerry);
# 5) // utilitzeu el bucle while per recórrer totes les columnes i files disponibles al full present dins del fitxer Excel.
while(recordset.next()){ // through getfield() method retrieve the data present in a particular column System.out.println(recordset.getField('Column1')); }
# 6) // Utilitzeu una consulta d'actualització per actualitzar els detalls del fitxer Excel.
String strUpdateQuerry = 'Update Data Set SiteTitle = 'SoftwareTestingHelp.com' '; connection.executeUpdate (strUpdateQuerry);
# 7) // Utilitzeu Insereix consulta per inserir dades al full Excel.
String strInsertQuerry = 'INSERT INTO Data (SiteTitle,SiteTopic) Values('Bharat','NewDelhi')'; connection.executeUpdate (strInsertQuerry);
# 8) // tanqueu el conjunt de registres per evitar fuites de memòria.
recordset. Close();
# 9) // tanqueu la connexió per evitar fuites de memòria.
el millor netejador de PC gratuït de Windows 7
connection. Close();
Ara, utilitzant els passos anteriors, en el marc Selenium, recuperarem els valors de les files i les columnes emmagatzemades en un fitxer Excel, és a dir, 'TestFile.xlsx', i introduirem el valor en un lloc de demostració: https://wordpress.com/start/about?ref=create-blog-lp
Full d'Excel amb valors de fila: 'Ajuda de prova nova' i 'Continguts_provats_continguts'
Fitxer Excel situat a la carpeta Projecte:
Codi de seleni
A continuació es mostra el codi complet de Selenium, que obté el valor del full Excel i de les entrades al lloc de prova:
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')); } }
Instantània del codi en execució
Sortida de codi que mostra el resultat de la sentència SQL:
Es realitza el fitxer Excel després de l'operació d'actualització i inserció:
Lloc web de demostració on vam obtenir dades de l'excel i les vam inserir al lloc:
Conclusió
- Fillo és una API java molt útil per extreure dades d’un full Excel i és compatible amb fitxers .xls i .xlsx Excel.
- Admet sentències SELECT, UPDATE i INSERT.
- Aneu amb compte mentre editeu el fitxer Excel. Si no cal cap fila o columna, suprimiu-les.
- Si només esborreu els valors de les files i les columnes sense suprimir-ne tota la fila, l'API assumirà que els camps tenen el valor i intentaran obtenir el valor de les files i columnes i, a canvi, obtindrem valors en blanc.
- Finalment, no oblideu tancar la connexió un cop hàgiu acabat d’obtenir els valors de l’excel.
Bona lectura !!
Lectura recomanada
- Introducció a Selenium WebDriver - Tutorial Selenium # 8
- Els 25 millors comandaments de Selenium WebDriver que heu de conèixer
- 10 millors eines de proves d'API el 2021 (eines de proves d'API SOAP i REST)
- Tutorial JAVA per a principiants: més de 100 tutorials pràctics de vídeo Java
- Top 90 de preguntes i respostes d'entrevistes SQL (DARRERES)
- 30+ millors tutorials sobre seleni: apreneu el seleni amb exemples reals
- Creació de Selenium Framework i accés a les dades de proves des d'Excel: tutorial núm. 21 de Selenium
- Marc basat en dades a Selenium WebDriver mitjançant Apache POI