how read write data from excel sheet selenium web driver
W tym samouczku nauczysz się odczytywać i zapisywać dane z pliku Excel w Selenium WebDriver przy użyciu FILLO API i instrukcji SQL.
Odczytywanie lub zapisywanie danych to jedna z najczęściej używanych operacji, albo pobieranie wartości z tabel bazy danych, albo pobieranie wartości z arkusza programu Excel i wykorzystywanie ich do wykonywania analiz.
W tym artykule mówimy o pobieraniu wartości z pliku Excela za pomocą instrukcji SQL i FILLO API.
Czego się nauczysz:
Przegląd SON API
FILLO to interfejs API języka Java używany do pobierania danych z plików programu Excel. Dzięki zastosowaniu FILLO API parametryzacja staje się bardzo prosta, czyli uruchamianie przypadków testowych w Selenium z innym zestawem danych.
Wcześniej używaliśmy JXL API do parametryzacji, później Apache POI weszło na rynek, aw obu tych API musimy napisać duży kod, aby przejść przez wiersze i kolumny oraz pobrać wartości zapisane w arkuszu Excela.
Ale teraz, dzięki nowemu interfejsowi API FILLO, nie musisz martwić się o rozmiar wierszy i kolumn, wszystko zostanie wewnętrznie załatwione przez API. Wystarczy wywołać klasy zdefiniowane w API i zadeklarować dane testowe w pliku Excel. Zapoznaj się z oficjalną witryną, aby uzyskać dokumentację i pobrać plik jar SON Java Library
Jeśli używasz Mavena, użyj zależności Maven.
Słoik FILLO z Maven Dependency
początek
- Jest to Excel API dla języka Java.
- Obsługuje pliki .xls i .xlsx.
- Obsługuje zapytania SELECT, UPDATE i INSERT.
- Używaj z klauzulami WHERE i LIKE lub bez nich.
Operacja dozwolona z Fillo
Wybierz operację: Instrukcja SELECT spełnia tę samą funkcję, co przy pobieraniu wartości z tabeli i wyświetlaniu ich użytkownikowi końcowemu, w ten sam sposób instrukcja SELECT zwraca dane z arkusza programu Excel.
Składnia:
SELECT * From Sheet Name
Operacja UPDATE: Instrukcja UPDATE modyfikuje istniejące rekordy w arkuszu Excel.
oprogramowanie AI uczy się tworzyć oprogramowanie AI
Składnia:
UPDATE sheet1 Set Column Name= ‘Value’
Operacja INSERT: Instrukcja INSERT wstawia nowy rekord do arkusza programu Excel.
Składnia:
INSERT INTO Sheet Name (ColumnName1,ColumnName2) VALUES (‘Val1’,’Val2’)
Wykonaj te same operacje z operatorami WHERE i LIKE:
- „WYBIERZ * z nazwy arkusza, gdzie ID = 1 i imię = 'Jezus'”
- „WYBIERZ * z nazwy arkusza, gdzie kolumna1 = wartość1 i kolumna2 = wartość2 i kolumna3 = wartość3”
- „UPDATE Sheet Name Set Country = 'UK', gdzie ID = 10 i imię = 'Jesus'”
- „WYBIERZ * z nazwy arkusza, gdzie nazwa taka jak„ Jes% ””
Kroki wykonania, które należy wykonać dla operacji SELECT / INSERT / UPDATE:
# 1) // Utwórz obiekt klasy Fillo.
Fillo fillo = new Fillo();
#dwa) // Utwórz klasę Object for Connection i użyj metody getConnection () zdefiniowanej w klasie Fillo, aby ustanowić połączenie między arkuszem programu Excel a interfejsami API Fillo.
Connection connection = fillo.getConnection(”excelPath”);
# 3) // Wybierz wszystkie wartości obecne w arkuszu. Te obecne w programie Excel i przechowują dane wyjściowe w zmiennej łańcuchowej.
String strSelectQuerry = 'Select * from SheetName';
# 4) // wykonaj zapytanie Select i zapisz wynik w klasie Recordset obecnej w Fillo API.
Recordset recordset =connection.executeQuery(strSelectQuerry);
# 5) // użyj pętli while do iteracji przez wszystkie kolumny i wiersze dostępne w arkuszu obecnym w pliku Excel.
while(recordset.next()){ // through getfield() method retrieve the data present in a particular column System.out.println(recordset.getField('Column1')); }
# 6) // Użyj zapytania aktualizującego, aby zaktualizować szczegóły w pliku Excel.
String strUpdateQuerry = 'Update Data Set SiteTitle = 'SoftwareTestingHelp.com' '; connection.executeUpdate (strUpdateQuerry);
# 7) // Użyj zapytania Wstaw, aby wstawić dane do arkusza programu Excel.
String strInsertQuerry = 'INSERT INTO Data (SiteTitle,SiteTopic) Values('Bharat','NewDelhi')'; connection.executeUpdate (strInsertQuerry);
# 8) // zamknij zestaw rekordów, aby uniknąć wycieku pamięci.
recordset. Close();
# 9) // zamknij połączenie, aby uniknąć wycieku pamięci.
connection. Close();
Teraz, wykonując powyższe kroki, we frameworku Selenium pobierzemy wartości wierszy i kolumn przechowywanych w pliku Excel, a mianowicie „TestFile.xlsx”, i wprowadzimy wartość w witrynie demonstracyjnej: https://wordpress.com/start/about?ref=create-blog-lp
Arkusz Excel z wartościami Wiersz: „Nowa pomoc testowa” i „Testing_Related_Contents”
Plik Excel umieszczony w folderze Project:
Kod selenu
Pełny kod Selenium, który pobiera wartość z arkusza Excela i danych wejściowych na stronie testowej, jest podany poniżej:
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')); } }
Migawka uruchomionego kodu
Kod wyjściowy, który pokazuje wynik instrukcji SQL:
Plik Excel po wykonaniu operacji Aktualizuj i Wstaw:
Witryna demonstracyjna, na której pobraliśmy dane z programu Excel i wstawiliśmy do witryny:
Wniosek
- Fillo to bardzo przydatne API java do wyodrębniania danych z arkusza Excela i obsługuje zarówno pliki .xls, jak i .xlsx Excel.
- Obsługuje instrukcje SELECT, UPDATE i INSERT.
- Zachowaj ostrożność podczas edycji pliku programu Excel. Jeśli jakieś wiersze lub kolumny nie są wymagane, usuń je.
- Jeśli po prostu usuniesz wartości z wierszy i kolumn bez usuwania całego wiersza, to API przyjmie, że pola mają wartość i spróbuje pobrać wartość z wierszy i kolumn, aw zamian otrzymamy puste wartości.
- Wreszcie, nie zapomnij zamknąć połączenia po zakończeniu pobierania wartości z programu Excel.
Miłego czytania !!
rekomendowane lektury
- Wprowadzenie do Selenium WebDriver - samouczek Selenium # 8
- 25 najlepszych poleceń Selenium WebDriver, które powinieneś znać
- 10 najlepszych narzędzi do testowania API w 2021 roku (narzędzia testowe SOAP i REST API)
- Samouczek JAVA dla początkujących: ponad 100 praktycznych samouczków wideo Java
- 90 najpopularniejszych pytań i odpowiedzi do wywiadów SQL (NAJNOWSZE)
- 30+ najlepszych samouczków dotyczących selenu: naucz się selenu z prawdziwymi przykładami
- Tworzenie Selenium Framework i dostęp do danych testowych z Excela - samouczek Selenium # 21
- Data Driven Framework w Selenium WebDriver przy użyciu Apache POI