वेब टेबल को कैसे संभालें Selenium
वेब टेबल क्या है? Selenium?
A वेब तालिका in Selenium वेबएलिमेंट एक ऐसा तत्व है जिसका उपयोग डेटा या सूचना के सारणीबद्ध प्रतिनिधित्व के लिए किया जाता है। प्रदर्शित डेटा या सूचना स्थिर या गतिशील हो सकती है। वेब टेबल और उसके तत्वों को वेबएलिमेंट फ़ंक्शन और लोकेटर का उपयोग करके एक्सेस किया जा सकता है Seleniumवेब टेबल का एक विशिष्ट उदाहरण ई-कॉमर्स प्लेटफॉर्म पर प्रदर्शित उत्पाद विनिर्देश होंगे।
HTML वेब तालिका पढ़ना
कई बार हमें HTML टेबल में मौजूद एलिमेंट (आमतौर पर टेक्स्ट) को एक्सेस करने की ज़रूरत होती है। हालाँकि, वेब डिज़ाइनर के लिए टेबल में किसी खास सेल को आईडी या नाम विशेषता प्रदान करना बहुत कम ही होता है। इसलिए, हम “By.id()”, “By.name()”, या “By.cssSelector()” जैसी सामान्य विधियों का उपयोग नहीं कर सकते। इस मामले में, सबसे विश्वसनीय विकल्प “By.xpath()” विधि का उपयोग करके उन्हें एक्सेस करना है।
वेब टेबल को कैसे संभालें Selenium
वेब तालिकाओं को संभालने के लिए नीचे दिए गए HTML कोड पर विचार करें Selenium.
.png)
हम इस्तेमाल करेंगे एक्सपाथ “चौथा सेल” टेक्स्ट वाले सेल का आंतरिक टेक्स्ट प्राप्त करने के लिए।
चरण 1 – मूल तत्व (तालिका) सेट करें
वेबड्राइवर में XPath लोकेटर हमेशा डबल फ़ॉरवर्ड स्लैश “//” से शुरू होते हैं और उसके बाद पैरेंट एलिमेंट आता है.चूंकि हम वेब टेबल के साथ काम कर रहे हैं Selenium, मूल तत्व हमेशा होना चाहिए टैग. हमारा पहला भाग Selenium इसलिए XPath टेबल लोकेटर को “//table” से शुरू होना चाहिए।
चरण 2 – चाइल्ड एलिमेंट्स जोड़ें
इसके ठीक नीचे वाला तत्व है तो हम कह सकते हैं कि का “बच्चा” है . और साथ ही, का “माता-पिता” है XPath में सभी चाइल्ड एलिमेंट्स को उनके पैरेंट एलिमेंट के दाईं ओर रखा जाता है, जो नीचे दिखाए गए कोड की तरह एक फॉरवर्ड स्लैश “/” से अलग होते हैं।
.png)
चरण 3 – प्रेडिकेट जोड़ें
तत्व में दो शामिल हैं टैग। अब हम कह सकते हैं कि ये दोनों टैग “बच्चे” हैं फलस्वरूप, हम कह सकते हैं कि दोनों का जनक है तत्व.
एक और बात जो हम निष्कर्ष निकाल सकते हैं वह यह है कि दोनों तत्व भाई-बहन हैं। सिबलिंग का तात्पर्य ऐसे चाइल्ड एलिमेंट से है जिनका पैरेंट एक ही हो.
तक पहुंचने के लिए हम जिस तक पहुंचना चाहते हैं (जिस पर टेक्स्ट "चौथा सेल" है), हमें पहले उस तक पहुंचना होगा दूसरा और पहला नहीं। अगर हम बस “//table/tbody/tr” लिखते हैं, तो हम पहले तक पहुँचेंगे टैग।
तो, हम दूसरे तक कैसे पहुंचें? तो फिर? इसका उत्तर है विधेय.
प्रेडिकेट संख्याएँ या HTML विशेषताएँ हैं जो वर्गाकार कोष्ठकों “[ ]” की एक जोड़ी में संलग्न होती हैं जो एक चाइल्ड एलिमेंट को उसके भाई-बहनों से अलग करती हैं.चूंकि हमें जिस तक पहुँचने की आवश्यकता है वह दूसरा है, हम विधेय के रूप में “[2]” का उपयोग करेंगे।
अगर हम किसी भी प्रेडिकेट का उपयोग नहीं करेंगे, तो XPath पहले सिबलिंग तक पहुँच जाएगा। इसलिए, हम पहले सिबलिंग तक पहुँच सकते हैं इनमें से किसी भी XPath कोड का उपयोग करें।
चरण 4 – उपयुक्त प्रेडिकेट का उपयोग करके अगले चाइल्ड एलिमेंट्स को जोड़ें
अगला तत्व जिस तक हमें पहुंचने की आवश्यकता है वह दूसरा है चरण 2 और 3 से सीखे गए सिद्धांतों को लागू करते हुए, हम अपने XPath कोड को नीचे दिखाए गए कोड के समान अंतिम रूप देंगे।
अब जबकि हमारे पास सही XPath लोकेटर है, हम पहले से ही उस सेल तक पहुँच सकते हैं जिसे हम चाहते थे और नीचे दिए गए कोड का उपयोग करके उसका आंतरिक पाठ प्राप्त कर सकते हैं। यह मानता है कि आपने ऊपर दिए गए HTML कोड को अपने C ड्राइव में “newhtml.html” के रूप में सहेजा है।
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();
}
}
नेस्टेड टेबल तक पहुँचना
ऊपर चर्चित वही सिद्धांत नेस्टेड तालिकाओं पर भी लागू होते हैं। नेस्टेड टेबल वे टेबल हैं जो किसी अन्य टेबल के अंदर स्थित होती हैं। एक उदाहरण नीचे दिया गया है।
पिछले अनुभाग से "//parent/child" और प्रेडिकेट अवधारणाओं का उपयोग करके "4-5-6" पाठ वाले सेल तक पहुंचने के लिए, हमें नीचे दिए गए XPath कोड के साथ आने में सक्षम होना चाहिए।
नीचे दिया गया वेबड्राइवर कोड उस सेल के आंतरिक पाठ को पुनः प्राप्त करने में सक्षम होना चाहिए, जिस तक हम पहुंच रहे हैं।
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();
}
नीचे दिया गया आउटपुट पुष्टि करता है कि आंतरिक तालिका तक सफलतापूर्वक पहुंच बनाई गई है।
विशेषताओं का विधेय के रूप में उपयोग करना
यदि तत्व HTML कोड में इस प्रकार गहराई में लिखा गया है कि प्रेडिकेट के लिए उपयोग की जाने वाली संख्या निर्धारित करना बहुत कठिन है, तो हम इसके स्थान पर उस तत्व की अद्वितीय विशेषता का उपयोग कर सकते हैं।
नीचे दिए गए उदाहरण में, “न्यूयॉर्क से शिकागो” सेल गहराई में स्थित है Mercury टूर्स होमपेज का HTML कोड.
इस मामले में, हम तालिका की अद्वितीय विशेषता (चौड़ाई = "270") को विधेय के रूप में उपयोग कर सकते हैं। विशेषताओं को @ प्रतीक के साथ उपसर्ग करके विधेय के रूप में उपयोग किया जाता हैउपरोक्त उदाहरण में, “न्यूयॉर्क से शिकागो” सेल पहले स्थान पर स्थित है चौथे का , और इसलिए हमारा XPath नीचे दिखाए अनुसार होना चाहिए।
याद रखें कि जब हम XPath कोड डालते हैं Java, हमें “270” के दोनों तरफ डबल कोटेशन मार्क्स के लिए एस्केप कैरेक्टर बैकवर्ड स्लैश “\” का उपयोग करना चाहिए ताकि By.xpath() का स्ट्रिंग तर्क समय से पहले समाप्त न हो जाए।
अब हम नीचे दिए गए कोड का उपयोग करके उस सेल तक पहुंचने के लिए तैयार हैं।
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
यदि किसी तत्व की संख्या या विशेषता प्राप्त करना अत्यंत कठिन या असंभव है, तो XPath कोड उत्पन्न करने का सबसे तेज़ तरीका Inspect Element का उपयोग करना है।
नीचे दिए गए उदाहरण पर विचार करें Mercury पर्यटन मुखपृष्ठ.
चरण 1
XPath कोड प्राप्त करने के लिए फायरबग का उपयोग करें।
चरण 2
पहले “टेबल” पैरेंट तत्व को देखें और उसके बाईं ओर की सभी चीजें हटा दें।
चरण 3
कोड के शेष भाग के आगे डबल फॉरवर्ड स्लैश “//” लगाएं और इसे अपने वेबड्राइवर कोड में कॉपी करें।
नीचे दिया गया वेबड्राइवर कोड उस तत्व के आंतरिक पाठ को सफलतापूर्वक प्राप्त करने में सक्षम होगा जिस तक हम पहुंच रहे हैं।
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

.png)



















