how read write data from excel sheet selenium web driver
У цьому посібнику ви навчитеся читати та записувати дані з файлу Excel у Selenium WebDriver за допомогою API FILLO та SQL.
Читання або запис даних є однією з найбільш часто використовуваних операцій, або отримання значень із таблиць бази даних, або отримання значень з аркуша Excel та використання їх для виконання аналітики.
У цій статті ми говоримо про отримання значень із файлу Excel за допомогою операторів SQL та API FILLO.
Що ви дізнаєтесь:
Огляд SON API
FILLO - це Java API, який використовується для отримання даних із файлів Excel. За допомогою API FILLO параметризація стає дуже простою, тобто запуск тестових кейсів у Selenium з іншим набором даних.
До цього ми використовували JXL API для параметризації, пізніше POI вийшов на ринок apache, і в обох цих API нам потрібно написати великий код, щоб обходити рядки та стовпці та отримувати значення, що зберігаються в аркуші Excel.
Але тепер, завдяки цьому новому API FILLO, не потрібно турбуватися про розмір рядків та стовпців, про все буде дбати API внутрішньо. Вам просто потрібно викликати класи, визначені в API, і оголосити свої тестові дані у файлі Excel. Зверніться до офіційного сайту для отримання документації та завантаження файлу jar - SON Бібліотека Java
Якщо ви використовуєте Maven, тоді використовуйте залежність Maven.
хороший безкоштовно завантажувач mp3 для андроїд
Банка FILLO із залежністю Maven
почати
- Це Excel API для мови Java.
- Він підтримує файли .xls та .xlsx.
- Він підтримує запити SELECT, UPDATE та INSERT.
- Використовувати з реченням WHERE та реченням LIKE або без нього.
Дозволена операція з Fillo
Операція SELECT: Оператор SELECT виконує ту саму функцію, що і при отриманні значень з таблиці та відображенні кінцевому користувачеві, так само, як тут оператор SELECT повертає дані з аркуша Excel.
Синтаксис:
SELECT * From Sheet Name
Операція оновлення: Оператор UPDATE змінює існуючі записи в аркуші Excel.
Синтаксис:
UPDATE sheet1 Set Column Name= ‘Value’
Операція INSERT: Оператор INSERT вставляє новий запис у аркуш Excel.
Синтаксис:
INSERT INTO Sheet Name (ColumnName1,ColumnName2) VALUES (‘Val1’,’Val2’)
Виконайте однакові операції з операторами WHERE та LIKE:
- “ВИБЕРІТЬ * із імені аркуша, де ID = 1 та name =‘ Ісус ’”
- “ВИБЕРІТЬ * з імені аркуша, де стовпець1 = значення1 і стовпець2 = значення2 і стовпець3 = значення3”
- 'ОНОВИТИ Ім'я аркуша Набір Країна = 'Великобританія', де ID = 10 та ім'я = 'Ісус''
- “ВИБЕРІТЬ * з імені аркуша, де ім’я на зразок„ Jes% '”
Етапи виконання, яких слід дотримуватися для операції ВИБОР / ВСТАВКА / ОНОВЛЕННЯ:
# 1) // Створення об'єкта класу Fillo.
Fillo fillo = new Fillo();
# два) // Створімо об’єкт для класу підключення та використовуємо метод getConnection (), визначений всередині класу Fillo, для встановлення зв’язку між аркушем Excel та API Fillo.
Connection connection = fillo.getConnection(”excelPath”);
# 3) // Виділення всіх значень, наявних у аркуші. Присутні всередині Excel і зберігають його висновок у рядковій змінній.
String strSelectQuerry = 'Select * from SheetName';
# 4) // виконуємо запит Select та зберігаємо результат у класі Recordset, присутньому в Fillo API.
Recordset recordset =connection.executeQuery(strSelectQuerry);
# 5) // використовуємо цикл while для перегляду всіх стовпців і рядків, доступних на аркуші, що знаходиться у файлі Excel.
while(recordset.next()){ // through getfield() method retrieve the data present in a particular column System.out.println(recordset.getField('Column1')); }
# 6) // Використовуйте запит оновлення, щоб оновити деталі у файлі Excel.
String strUpdateQuerry = 'Update Data Set SiteTitle = 'SoftwareTestingHelp.com' '; connection.executeUpdate (strUpdateQuerry);
# 7) // Використовуйте запит 'Вставити', щоб вставити дані в аркуш Excel.
String strInsertQuerry = 'INSERT INTO Data (SiteTitle,SiteTopic) Values('Bharat','NewDelhi')'; connection.executeUpdate (strInsertQuerry);
# 8) // закрити набір записів, щоб уникнути витоку пам'яті.
recordset. Close();
# 9) // закрити з'єднання, щоб уникнути витоку пам'яті.
connection. Close();
Тепер, використовуючи наведені вище кроки, у фреймворці Selenium ми отримаємо значення рядків і стовпців, що зберігаються у файлі Excel, а саме “TestFile.xlsx”, і введемо значення на демонстраційному сайті: https://wordpress.com/start/about?ref=create-blog-lp
Аркуш Excel із значеннями рядків: 'Нова тестова довідка' та 'Testing_Related_Contents'
Файл Excel, розміщений у папці Project:
Код селену
Повний код селену, який отримує значення з аркуша Excel та входів на тестовому майданчику, поданий нижче:
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')); } }
Знімок запущеного коду
Вивід коду, який відображає результат оператора SQL:
Файл Excel після виконання операції оновлення та вставки:
Демонстраційний веб-сайт, на якому ми отримали дані з Excel і вставили на сайт:
Висновок
- Fillo - це дуже корисний Java-API для вилучення даних з аркуша Excel, і він підтримує як .xls, так і .xlsx файли Excel.
- Він підтримує оператори SELECT, UPDATE та INSERT.
- Будьте обережні під час редагування файлу Excel. Якщо будь-які рядки або стовпці не потрібні, видаліть їх.
- Якщо ви просто стерте значення з рядків і стовпців, не видаляючи весь рядок, тоді API припустить, що поля мають значення, і спробує отримати значення з рядків і стовпців, а натомість ми отримаємо порожні значення.
- Нарешті, не забудьте розірвати з'єднання, коли закінчите з вибором значень з Excel.
Щасливого читання !!
Рекомендована література
- Вступ до Selenium WebDriver - Підручник з селену №8
- 25 найкращих команд селену WebDriver, які ви повинні знати
- 10 найкращих засобів тестування API у 2021 році (SOAP та REST API)
- Підручник JAVA для початківців: 100+ практичних навчальних посібників Java
- Найпопулярніші 90 запитань та відповідей на інтерв’ю SQL (ОСТАННІ)
- 30+ найкращих підручників із селену: вивчіть селен на реальних прикладах
- Створення Framework селену та доступ до тестових даних з Excel - Підручник селену №21
- Data Driven Framework у Selenium WebDriver з використанням Apache POI