how read write data from excel sheet selenium web driver
इस ट्यूटोरियल में, आप सेलीनियम वेबड्राइवर में एक्सेल फ़ाइल से डेटा को पढ़ना और लिखना सीखेंगे, जिसमें फीलो एपीआई और एसक्यूएल स्टेटमेंट का उपयोग किया जाएगा।
डेटा पढ़ना या लिखना सबसे अधिक उपयोग किए जाने वाले ऑपरेशनों में से एक है, या तो डेटाबेस तालिकाओं से मूल्यों को प्राप्त करना या एक्सेल शीट से मूल्यों को प्राप्त करना और विश्लेषण करने के लिए उनका उपयोग करना।
इस लेख में हम बात करते हैं, SQL स्टेटमेंट और FILLO API का उपयोग करके एक्सेल फ़ाइल से मान प्राप्त करने की।
आप क्या सीखेंगे:
बेटा एपीआई अवलोकन
FILLO एक Java API है जिसका उपयोग Excel Files से डेटा लाने के लिए किया जाता है। FILLO API के उपयोग के साथ, पैरामीटराइज़ेशन बहुत आसान हो जाता है, यानी सेलेनियम में अपने परीक्षण मामलों को डेटा के एक अलग सेट के साथ चलाना।
इससे पहले, हमने जेएक्सएल एपीआई का उपयोग मानकीकरण करने के लिए किया था, बाद में अपाचे पीओआई बाजार में आया, और इन दोनों एपीआई में हमें बड़ी कोड लिखने, पंक्तियों और स्तंभों को पार करने और एक उत्कृष्ट शीट में संग्रहीत मूल्यों को लाने की आवश्यकता है।
लेकिन अब, इस नए फिलो एपीआई के साथ, पंक्तियों और स्तंभों के आकार के बारे में चिंता करने की कोई जरूरत नहीं है, सब कुछ एपीआई द्वारा आंतरिक रूप से ध्यान रखा जाएगा। आपको बस एपीआई में परिभाषित कक्षाओं को कॉल करने और एक्सेल फ़ाइल में अपना परीक्षण डेटा घोषित करने की आवश्यकता है। जार फ़ाइल के प्रलेखन और डाउनलोड के लिए आधिकारिक साइट देखें- पुत्र जावा पुस्तकालय
यदि आप मावेन का उपयोग कर रहे हैं, तो मावेन निर्भरता का उपयोग करें।
मावेन डिपेंडेंसी के साथ फिल जार
शुरू
- यह जावा भाषा के लिए एक एक्सेल एपीआई है।
- यह .xls और .xlsx फ़ाइलों का समर्थन करता है।
- यह SELECT, UPDATE और INSERT प्रश्नों का समर्थन करता है।
- WHERE क्लॉज और LIKE क्लॉज के साथ या बिना उपयोग करें।
फिलो के साथ ऑपरेशन की अनुमति है
ऑपरेशन का चयन करें: सेलेक्ट स्टेटमेंट एक ही फंक्शन करता है, जैसे यह टेबल से वैल्यू लाने और एंड-यूज़र को डिस्प्ले करता है, उसी तरह से सेलेक्ट स्टेटमेंट एक्सल शीट से डेटा लौटाता है।
वाक्य - विन्यास :
SELECT * From Sheet Name
अद्यतन ऑपरेशन: अद्यतन कथन एक्सेल शीट में मौजूदा रिकॉर्ड को संशोधित करता है।
वाक्य - विन्यास:
UPDATE sheet1 Set Column Name= ‘Value’
INSERT ऑपरेशन: INSERT स्टेटमेंट एक एक्सेल शीट में एक नया रिकॉर्ड सम्मिलित करता है।
वाक्य - विन्यास:
INSERT INTO Sheet Name (ColumnName1,ColumnName2) VALUES (‘Val1’,’Val2’)
WHERE और LIKE ऑपरेटरों के साथ एक ही ऑपरेशन करें:
- 'शीट नाम से चयन करें * जहाँ ID = 1 और नाम = 'यीशु'
- 'शीट नाम से चयन करें * जहां कॉलम 1 = मान 1 और स्तंभ 2 = मान 2 और स्तंभ 3 = मान 3'
- 'अद्यतन शीट नाम सेट देश = 'यूके' जहाँ ID = 10 और नाम = 'यीशु' है'
- 'शीट नाम से चयन करें * जहां नाम 'जेस%' जैसा है'
निष्पादन / चयन / अद्यतन कार्रवाई के लिए अनुवर्ती कदम
# 1) // फिलो क्लास की एक वस्तु बनाएं।
Fillo fillo = new Fillo();
#दो) // कनेक्शन क्लास के लिए एक ऑब्जेक्ट बनाएं और एक्सेल शीट और फिलो एपीआई के बीच कनेक्शन स्थापित करने के लिए, फिलो क्लास के अंदर परिभाषित गेटकनेक्शन () विधि का उपयोग करें।
Connection connection = fillo.getConnection(”excelPath”);
# 3) // शीट में मौजूद सभी मानों का चयन करें। वे एक्सेल के अंदर मौजूद हैं और एक स्ट्रिंग चर में इसके उत्पादन को संग्रहीत करते हैं।
String strSelectQuerry = 'Select * from SheetName';
# 4) // सेलेक्ट क्वेरी को निष्पादित करें और फिलो एपीआई में मौजूद एक रिकॉर्डसेट क्लास में परिणाम को स्टोर करें।
Recordset recordset =connection.executeQuery(strSelectQuerry);
# 5) // एक्सेल फाइल के अंदर मौजूद शीट में उपलब्ध सभी कॉलम और पंक्तियों के माध्यम से लूप करते समय लूप का उपयोग करें।
while(recordset.next()){ // through getfield() method retrieve the data present in a particular column System.out.println(recordset.getField('Column1')); }
# 6) // एक्सेल फ़ाइल में विवरण अपडेट करने के लिए एक अपडेट क्वेरी का उपयोग करें।
String strUpdateQuerry = 'Update Data Set SiteTitle = 'SoftwareTestingHelp.com' '; connection.executeUpdate (strUpdateQuerry);
# 7) // एक्सेल शीट में डेटा डालने के लिए क्वैरी क्वैरी का उपयोग करें।
String strInsertQuerry = 'INSERT INTO Data (SiteTitle,SiteTopic) Values('Bharat','NewDelhi')'; connection.executeUpdate (strInsertQuerry);
# 8) // मेमोरी रिसाव से बचने के लिए रिकॉर्डसेट बंद करें।
recordset. Close();
# 9) // मेमोरी लीक से बचने के लिए कनेक्शन बंद करें।
connection. Close();
अब उपरोक्त चरणों का उपयोग करते हुए, सेलेनियम ढांचे में, हम एक एक्सेल फ़ाइल अर्थात 'TestFile.xlsx' में संग्रहीत पंक्तियों और स्तंभों के मूल्यों को प्राप्त करेंगे, और एक डेमो साइट में मान दर्ज करेंगे: https://wordpress.com/start/about?ref=create-blog-lp
एक्सेल शीट में रो वैल्यूज़: 'न्यू टेस्ट हेल्प' और 'टेस्टिंग_रेल्ड_कंटेंट्स'
एक्सेल फ़ाइल प्रोजेक्ट फ़ोल्डर में रखी गई है:
सेलेनियम कोड
पूरा सेलेनियम कोड, जो एक्सेल शीट से मूल्य प्राप्त करता है और परीक्षण स्थल में इनपुट नीचे दिया गया है:
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')); } }
रनिंग कोड का स्नैपशॉट
हैश तालिका c ++ लागू करना
कोड आउटपुट जो SQL स्टेटमेंट परिणाम दिखाता है:
अपडेट और इंसर्ट ऑपरेशन के बाद एक्सेल फाइल की जाती है:
डेमो वेबसाइट जहां हमने एक्सेल से डेटा प्राप्त किया और साइट में डाला:
निष्कर्ष
- फिलो एक एक्सेल शीट से डेटा निकालने के लिए एक बहुत ही उपयोगी जावा एपीआई है और यह दोनों .xls और साथ ही .xlsx एक्सेल फ़ाइलों का समर्थन करता है।
- यह SELECT, UPDATE और INSERT स्टेटमेंट को सपोर्ट करता है।
- एक्सेल फ़ाइल को संपादित करते समय सावधान रहें। यदि किसी भी पंक्तियों या स्तंभों की आवश्यकता नहीं है, तो उन्हें हटा दें।
- यदि आप पूरी पंक्ति को हटाए बिना पंक्तियों और स्तंभों से मानों को मिटा देते हैं, तो API मान लेगा कि फ़ील्ड्स का मान है और पंक्तियों और स्तंभों से मान लाने का प्रयास करेंगे और बदले में, हमें रिक्त मान मिलेंगे।
- अंत में, जब आप एक्सेल से मान प्राप्त कर रहे हों, तब कनेक्शन बंद करना न भूलें।
पढ़ने का आनंद लो!!
अनुशंसित पाठ
- सेलेनियम वेबड्राइवर का परिचय - सेलेनियम ट्यूटोरियल # 8
- शीर्ष 25 सेलेनियम वेबड्राइवर जो आपको पता होना चाहिए
- 2021 में 10 सर्वश्रेष्ठ एपीआई परीक्षण उपकरण (SOAP और REST API परीक्षण उपकरण)
- जावा ट्यूटोरियल फॉर बिगिनर्स: 100+ हैंड्स-ऑन जावा वीडियो ट्यूटोरियल
- शीर्ष 90 SQL साक्षात्कार प्रश्न और उत्तर (नवीनतम)
- 30+ सर्वश्रेष्ठ सेलेनियम ट्यूटोरियल: वास्तविक उदाहरणों के साथ सेलेनियम जानें
- सेलेनियम फ्रेमवर्क निर्माण और एक्सेल से टेस्ट डेटा तक पहुंचना - सेलेनियम ट्यूटोरियल # 21
- अपाचे POI का उपयोग कर सेलेनियम वेबड्राइवर में डेटा ड्रिवेन फ्रेमवर्क