XPath द्वारा FindElement खोजें Selenium
⚡ स्मार्ट सारांश
XPath द्वारा FindElement खोजें Selenium यह कमांड पेज पर मौजूद किसी एक वेब एलिमेंट की विशिष्ट रूप से पहचान करता है, जबकि FindElements कमांड मेल खाने वाले सभी एलिमेंट्स की पूरी सूची लौटाता है। दोनों कमांड ID, Name, Class Name और XPath रणनीतियों को कवर करने वाले By लोकेटर ऑब्जेक्ट को स्वीकार करते हैं।
In Selenium वेबड्राइवर, FindElement और तत्व खोजें ये वे मुख्य कमांड हैं जिनका उपयोग किसी पृष्ठ पर वेब तत्वों का पता लगाने के लिए किया जाता है, इससे पहले कि उन पर क्लिक या टेक्स्ट एंट्री जैसी कोई कार्रवाई की जा सके।
आपको तत्व(तत्वों) को खोजने के आदेश की आवश्यकता क्यों है?
किसी वेब पेज के साथ इंटरैक्ट करने के लिए उपयोगकर्ता को पहले वेब एलिमेंट का पता लगाना होता है। फाइंड एलिमेंट कमांड का उपयोग वेब पेज के भीतर किसी एक वेब एलिमेंट को विशिष्ट रूप से पहचानने के लिए किया जाता है, जबकि फाइंड एलिमेंट्स कमांड का उपयोग वेब एलिमेंट्स की सूची को पहचानने के लिए किया जाता है। एक एलिमेंट को कई कमांड का उपयोग करके पहचाना जा सकता है। लोकेटर रणनीतियाँ जैसे कि आईडी, नाम, क्लास का नाम, लिंक टेक्स्ट, आंशिक लिंक टेक्स्ट, टैग का नाम और एक्सपाथ.
FindElement कमांड सिंटैक्स
नीचे FindElement कमांड का सिंटैक्स दिया गया है। Selenium वेबड्राइवर:
WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));
FindElement कमांड By ऑब्जेक्ट को पैरामीटर के रूप में लेता है और WebElement प्रकार का एक ऑब्जेक्ट लौटाता है। By ऑब्जेक्ट का उपयोग ID, Name, Class Name, XPath आदि जैसी विभिन्न लोकेटर रणनीतियों के साथ किया जा सकता है।
लोकेटर रणनीति निम्नलिखित में से कोई भी मान हो सकती है:
- ID
- नाम
- कक्षा का नाम
- टैग नाम
- लिंक पाठ
- आंशिक लिंक पाठ
- एक्सपाथ
लोकेटर वैल्यू वह विशिष्ट मान है जिसका उपयोग करके किसी वेब एलिमेंट की पहचान की जा सकती है। यह डेवलपर्स और टेस्टर्स की ज़िम्मेदारी है कि वे यह सुनिश्चित करें कि वेब एलिमेंट्स को आईडी या नाम जैसी विशिष्ट विशेषताओं का उपयोग करके आसानी से पहचाना जा सके।
उदाहरण:
WebElement loginLink = driver.findElement(By.linkText("Login"));
उदाहरण: तत्व ढूंढें Selenium
निम्नलिखित डेमो एप्लिकेशन का उपयोग फाइंड एलिमेंट कमांड को क्रियान्वित रूप में दिखाने के लिए किया जाता है:
https://demo.guru99.com/test/ajax.html
परिदृश्य:
चरण १: AUT खोलें
चरण १: रेडियो बटन ढूंढें और उस पर क्लिक करें, फिर चेक बटन पर क्लिक करें।
package com.sample.stepdefinitions;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class NameDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.setProperty("webdriver.chrome.driver", "D:\\3rdparty\\chrome\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://demo.guru99.com/test/ajax.html");
// Find the radio button for “No” using its ID and click on it
driver.findElement(By.id("no")).click();
//Click on Check Button
driver.findElement(By.id("buttoncheck")).click();
}
}
FindElements कमांड सिंटैक्स
जब आपको किसी लोकेटर से मेल खाने वाले पहले तत्व के बजाय उससे मेल खाने वाले सभी तत्वों की आवश्यकता हो, तो FindElements का उपयोग करें। इसका सिंटैक्स नीचे दिया गया है:
List<WebElement> elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));
FindElements कमांड By ऑब्जेक्ट को पैरामीटर के रूप में लेता है और वेब तत्वों की एक सूची लौटाता है। यदि दी गई लोकेटर रणनीति और लोकेटर मान का उपयोग करके कोई तत्व नहीं मिलते हैं, तो यह एक खाली सूची लौटाता है।
उदाहरण:
List<WebElement> listOfElements = driver.findElements(By.xpath("//div"));
उदाहरण: तत्वों को खोजें Selenium
इसी डेमो एप्लिकेशन का उपयोग यह दिखाने के लिए किया जाता है कि FindElements किस प्रकार मेल खाने वाले तत्वों की सूची पर पुनरावृति करता है।
परिदृश्य:
चरण १: ओपन URL परीक्षणधीन आवेदन के लिए
चरण १: रेडियो बटनों का टेक्स्ट ढूंढें और उसे आउटपुट कंसोल पर प्रिंट करें।
package com.sample.stepdefinitions;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class NameDemo {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "X://chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://demo.guru99.com/test/ajax.html");
List<WebElement> elements = driver.findElements(By.name("name"));
System.out.println("Number of elements:" +elements.size());
for (int i=0; i<elements.size();i++){
System.out.println("Radio button text:" + elements.get(i).getAttribute("value"));
}
}
}
एलिमेंट ढूंढें बनाम एलिमेंट्स ढूंढें
नीचे Find Element और Find Elements कमांड के बीच प्रमुख अंतर दिए गए हैं:
| तत्व खोजें | तत्व खोजें |
|---|---|
| यदि एक ही लोकेटर वाले कई वेब एलिमेंट मिलते हैं, तो यह पहला वेब एलिमेंट लौटाता है। | वेब तत्वों की सूची लौटाता है |
| यदि लोकेटर रणनीति से मेल खाने वाले कोई तत्व नहीं हैं तो NoSuchElementException अपवाद उत्पन्न करता है। | यदि लोकेटर रणनीति से मेल खाने वाले कोई वेब तत्व नहीं हैं, तो एक खाली सूची लौटाता है |
| XPath का उपयोग करके एलिमेंट खोजने से केवल एक ही वेब एलिमेंट मिलेगा। | यह लोकेटर रणनीति से मेल खाने वाले तत्वों का संग्रह ढूंढेगा। |
| लागू नहीं | प्रत्येक वेब एलिमेंट को 0 से शुरू होने वाली संख्या से इंडेक्स किया जाता है, बिल्कुल एक ऐरे की तरह। |


