वेब टेबल को कैसे संभालें Selenium

वेब टेबल क्या है? Selenium?

A वेब तालिका in Selenium वेबएलिमेंट एक ऐसा तत्व है जिसका उपयोग डेटा या सूचना के सारणीबद्ध प्रतिनिधित्व के लिए किया जाता है। प्रदर्शित डेटा या सूचना स्थिर या गतिशील हो सकती है। वेब टेबल और उसके तत्वों को वेबएलिमेंट फ़ंक्शन और लोकेटर का उपयोग करके एक्सेस किया जा सकता है Seleniumवेब टेबल का एक विशिष्ट उदाहरण ई-कॉमर्स प्लेटफॉर्म पर प्रदर्शित उत्पाद विनिर्देश होंगे।

HTML वेब तालिका पढ़ना

कई बार हमें HTML टेबल में मौजूद एलिमेंट (आमतौर पर टेक्स्ट) को एक्सेस करने की ज़रूरत होती है। हालाँकि, वेब डिज़ाइनर के लिए टेबल में किसी खास सेल को आईडी या नाम विशेषता प्रदान करना बहुत कम ही होता है। इसलिए, हम “By.id()”, “By.name()”, या “By.cssSelector()” जैसी सामान्य विधियों का उपयोग नहीं कर सकते। इस मामले में, सबसे विश्वसनीय विकल्प “By.xpath()” विधि का उपयोग करके उन्हें एक्सेस करना है।

वेब टेबल को कैसे संभालें Selenium

वेब तालिकाओं को संभालने के लिए नीचे दिए गए HTML कोड पर विचार करें Selenium.

टेबल के लिए XPath कैसे लिखें? Selenium

हम इस्तेमाल करेंगे एक्सपाथ “चौथा सेल” टेक्स्ट वाले सेल का आंतरिक टेक्स्ट प्राप्त करने के लिए।

टेबल के लिए XPath कैसे लिखें? Selenium

चरण 1 – मूल तत्व (तालिका) सेट करें

वेबड्राइवर में XPath लोकेटर हमेशा डबल फ़ॉरवर्ड स्लैश “//” से शुरू होते हैं और उसके बाद पैरेंट एलिमेंट आता है.चूंकि हम वेब टेबल के साथ काम कर रहे हैं Selenium, मूल तत्व हमेशा होना चाहिए टैग. हमारा पहला भाग Selenium इसलिए XPath टेबल लोकेटर को “//table” से शुरू होना चाहिए।

Selenium वेब तालिका उदाहरण

चरण 2 – चाइल्ड एलिमेंट्स जोड़ें

इसके ठीक नीचे वाला तत्व है तो हम कह सकते हैं कि का “बच्चा” है . और साथ ही, का “माता-पिता” है XPath में सभी चाइल्ड एलिमेंट्स को उनके पैरेंट एलिमेंट के दाईं ओर रखा जाता है, जो नीचे दिखाए गए कोड की तरह एक फॉरवर्ड स्लैश “/” से अलग होते हैं।

Selenium वेब तालिका उदाहरण

चरण 3 – प्रेडिकेट जोड़ें

तत्व में दो शामिल हैं टैग। अब हम कह सकते हैं कि ये दोनों टैग “बच्चे” हैं फलस्वरूप, हम कह सकते हैं कि दोनों का जनक है तत्व.

एक और बात जो हम निष्कर्ष निकाल सकते हैं वह यह है कि दोनों तत्व भाई-बहन हैं। सिबलिंग का तात्पर्य ऐसे चाइल्ड एलिमेंट से है जिनका पैरेंट एक ही हो.

तक पहुंचने के लिए हम जिस तक पहुंचना चाहते हैं (जिस पर टेक्स्ट "चौथा सेल" है), हमें पहले उस तक पहुंचना होगा दूसरा और पहला नहीं। अगर हम बस “//table/tbody/tr” लिखते हैं, तो हम पहले तक पहुँचेंगे टैग।

तो, हम दूसरे तक कैसे पहुंचें? तो फिर? इसका उत्तर है विधेय.

प्रेडिकेट संख्याएँ या HTML विशेषताएँ हैं जो वर्गाकार कोष्ठकों “[ ]” की एक जोड़ी में संलग्न होती हैं जो एक चाइल्ड एलिमेंट को उसके भाई-बहनों से अलग करती हैं.चूंकि हमें जिस तक पहुँचने की आवश्यकता है वह दूसरा है, हम विधेय के रूप में “[2]” का उपयोग करेंगे।

 Selenium वेब तालिका उदाहरण

अगर हम किसी भी प्रेडिकेट का उपयोग नहीं करेंगे, तो XPath पहले सिबलिंग तक पहुँच जाएगा। इसलिए, हम पहले सिबलिंग तक पहुँच सकते हैं इनमें से किसी भी XPath कोड का उपयोग करें।

Selenium Xpath का उपयोग कर वेब तालिका

चरण 4 – उपयुक्त प्रेडिकेट का उपयोग करके अगले चाइल्ड एलिमेंट्स को जोड़ें

अगला तत्व जिस तक हमें पहुंचने की आवश्यकता है वह दूसरा है चरण 2 और 3 से सीखे गए सिद्धांतों को लागू करते हुए, हम अपने XPath कोड को नीचे दिखाए गए कोड के समान अंतिम रूप देंगे।

वेब तालिका में Selenium Xpath का उपयोग करना

अब जबकि हमारे पास सही XPath लोकेटर है, हम पहले से ही उस सेल तक पहुँच सकते हैं जिसे हम चाहते थे और नीचे दिए गए कोड का उपयोग करके उसका आंतरिक पाठ प्राप्त कर सकते हैं। यह मानता है कि आपने ऊपर दिए गए HTML कोड को अपने C ड्राइव में “newhtml.html” के रूप में सहेजा है।

वेब तालिका में Selenium Xpath का उपयोग करना

public static void main(String[] args) {
	String baseUrl = "https://demo.guru99.com/test/write-xpath-table.html";
	WebDriver driver = new FirefoxDriver();

	driver.get(baseUrl);
	String innerText = driver.findElement(
		By.xpath("//table/tbody/tr[2]/td[2]")).getText(); 	
        System.out.println(innerText); 
	driver.quit();
	}
}

वेब तालिका में Selenium Xpath का उपयोग करना

नेस्टेड टेबल तक पहुँचना

ऊपर चर्चित वही सिद्धांत नेस्टेड तालिकाओं पर भी लागू होते हैं। नेस्टेड टेबल वे टेबल हैं जो किसी अन्य टेबल के अंदर स्थित होती हैं। एक उदाहरण नीचे दिया गया है।

नेस्टेड टेबल्स तक कैसे पहुँचें Selenium

पिछले अनुभाग से "//parent/child" और प्रेडिकेट अवधारणाओं का उपयोग करके "4-5-6" पाठ वाले सेल तक पहुंचने के लिए, हमें नीचे दिए गए XPath कोड के साथ आने में सक्षम होना चाहिए।

नेस्टेड टेबल्स तक कैसे पहुँचें Selenium


नीचे दिया गया वेबड्राइवर कोड उस सेल के आंतरिक पाठ को पुनः प्राप्त करने में सक्षम होना चाहिए, जिस तक हम पहुंच रहे हैं।

नेस्टेड टेबल तक पहुँचना Selenium

public static void main(String[] args) {
	String baseUrl = "https://demo.guru99.com/test/accessing-nested-table.html";
	WebDriver driver = new FirefoxDriver();

	driver.get(baseUrl);
	String innerText = driver.findElement(
		By.xpath("//table/tbody/tr[2]/td[2]/table/tbody/tr/td[2]")).getText(); 		
        System.out.println(innerText); 
	driver.quit();
}

नीचे दिया गया आउटपुट पुष्टि करता है कि आंतरिक तालिका तक सफलतापूर्वक पहुंच बनाई गई है।

नेस्टेड टेबल तक पहुँचना Selenium

विशेषताओं का विधेय के रूप में उपयोग करना

यदि तत्व HTML कोड में इस प्रकार गहराई में लिखा गया है कि प्रेडिकेट के लिए उपयोग की जाने वाली संख्या निर्धारित करना बहुत कठिन है, तो हम इसके स्थान पर उस तत्व की अद्वितीय विशेषता का उपयोग कर सकते हैं।

नीचे दिए गए उदाहरण में, “न्यूयॉर्क से शिकागो” सेल गहराई में स्थित है Mercury टूर्स होमपेज का HTML कोड.

Selenium विशेषताओं को प्रेडिकेट के रूप में उपयोग करने वाला वेब तालिका उदाहरण

Selenium विशेषताओं को प्रेडिकेट के रूप में उपयोग करने वाला वेब तालिका उदाहरण

इस मामले में, हम तालिका की अद्वितीय विशेषता (चौड़ाई = "270") को विधेय के रूप में उपयोग कर सकते हैं। विशेषताओं को @ प्रतीक के साथ उपसर्ग करके विधेय के रूप में उपयोग किया जाता हैउपरोक्त उदाहरण में, “न्यूयॉर्क से शिकागो” सेल पहले स्थान पर स्थित है चौथे का , और इसलिए हमारा XPath नीचे दिखाए अनुसार होना चाहिए।

Selenium प्रेडिकेट के रूप में विशेषताओं के साथ वेब तालिका उदाहरण

याद रखें कि जब हम XPath कोड डालते हैं Java, हमें “270” के दोनों तरफ डबल कोटेशन मार्क्स के लिए एस्केप कैरेक्टर बैकवर्ड स्लैश “\” का उपयोग करना चाहिए ताकि By.xpath() का स्ट्रिंग तर्क समय से पहले समाप्त न हो जाए।

Selenium प्रेडिकेट के रूप में विशेषताओं के साथ वेब तालिका उदाहरण

अब हम नीचे दिए गए कोड का उपयोग करके उस सेल तक पहुंचने के लिए तैयार हैं।

Selenium प्रेडिकेट के रूप में विशेषताओं के साथ वेब तालिका उदाहरण

public static void main(String[] args) {
	String baseUrl = "https://demo.guru99.com/test/newtours/";
	WebDriver driver = new FirefoxDriver();

	driver.get(baseUrl);
	String innerText = driver.findElement(By
		.xpath("//table[@width=\"270\"]/tbody/tr[4]/td"))
		.getText(); 		
	System.out.println(innerText); 
	driver.quit();
}

Selenium प्रेडिकेट के रूप में विशेषताओं के साथ वेब तालिका उदाहरण

शॉर्टकट: तालिकाओं तक पहुँचने के लिए इंस्पेक्ट एलिमेंट का उपयोग करें Selenium

यदि किसी तत्व की संख्या या विशेषता प्राप्त करना अत्यंत कठिन या असंभव है, तो XPath कोड उत्पन्न करने का सबसे तेज़ तरीका Inspect Element का उपयोग करना है।

नीचे दिए गए उदाहरण पर विचार करें Mercury पर्यटन मुखपृष्ठ.

Selenium प्रेडिकेट के रूप में विशेषताओं के साथ वेब तालिका उदाहरण

चरण 1

XPath कोड प्राप्त करने के लिए फायरबग का उपयोग करें।

Selenium प्रेडिकेट के रूप में विशेषताओं के साथ वेब तालिका उदाहरण

चरण 2

पहले “टेबल” पैरेंट तत्व को देखें और उसके बाईं ओर की सभी चीजें हटा दें।

Selenium प्रेडिकेट के रूप में विशेषताओं के साथ वेब तालिका उदाहरण

चरण 3

कोड के शेष भाग के आगे डबल फॉरवर्ड स्लैश “//” लगाएं और इसे अपने वेबड्राइवर कोड में कॉपी करें।

Selenium विशेषताओं के साथ वेब तालिका उदाहरण

नीचे दिया गया वेबड्राइवर कोड उस तत्व के आंतरिक पाठ को सफलतापूर्वक प्राप्त करने में सक्षम होगा जिस तक हम पहुंच रहे हैं।

Selenium विशेषताओं के साथ वेब तालिका उदाहरण

public static void main(String[] args) {
	String baseUrl = "https://demo.guru99.com/test/newtours/";
	WebDriver driver = new FirefoxDriver();

	driver.get(baseUrl);
	String innerText = driver.findElement(By
		.xpath("//table/tbody/tr/td[2]"
		+ "//table/tbody/tr[4]/td/"
		+ "table/tbody/tr/td[2]/"
		+ "table/tbody/tr[2]/td[1]/"
		+ "table[2]/tbody/tr[3]/td[2]/font"))
		.getText(); 		
	System.out.println(innerText); 
	driver.quit();
}

सारांश

  • By.xpath() का उपयोग आमतौर पर WebTable के तत्वों तक पहुँचने के लिए किया जाता है Selenium.
  • यदि तत्व HTML कोड में इस तरह से लिखा गया है कि प्रेडिकेट के लिए उपयोग की जाने वाली संख्या निर्धारित करना बहुत कठिन है, तो हम इसके बजाय उस तत्व की अद्वितीय विशेषता का उपयोग कर सकते हैं। Selenium तालिका तत्व प्राप्त करें.
  • विशेषताओं को @ प्रतीक उपसर्ग के साथ जोड़कर विधेय के रूप में प्रयोग किया जाता है।
  • वेबटेबल तक पहुँचने के लिए इंस्पेक्ट एलिमेंट का उपयोग करें Selenium

इस पोस्ट को संक्षेप में इस प्रकार लिखें: