XPath द्वारा FindElement खोजें Selenium

आपको तत्व(तत्वों) को खोजने के आदेश की आवश्यकता क्यों है?

वेब पेज के साथ इंटरेक्शन के लिए यूजर को वेब एलिमेंट का पता लगाना होता है। फाइंड एलिमेंट कमांड का इस्तेमाल वेब पेज के अंदर एक (एक) वेब एलिमेंट को विशिष्ट रूप से पहचानने के लिए किया जाता है। जबकि, फाइंड एलिमेंट कमांड का इस्तेमाल वेब पेज के अंदर वेब एलिमेंट की सूची को विशिष्ट रूप से पहचानने के लिए किया जाता है। वेब पेज के अंदर वेब एलिमेंट को विशिष्ट रूप से पहचानने के कई तरीके हैं जैसे कि आईडी, नाम, क्लास का नाम, लिंक टेक्स्ट, आंशिक लिंक टेक्स्ट, टैग नाम और XPATH।

FindElement कमांड सिंटैक्स

WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));

Selenium तत्व खोजें कमांड पैरामीटर के रूप में By ऑब्जेक्ट को लेता है और सूची WebElement प्रकार का ऑब्जेक्ट लौटाता है Selenium.ऑब्जेक्ट द्वारा बदले में विभिन्न लोकेटर रणनीतियों के साथ उपयोग किया जा सकता है जैसे कि आईडी द्वारा तत्व ढूंढें Selenium, नाम, वर्ग का नाम, XPATH आदि। नीचे FindElement कमांड का सिंटैक्स है Selenium वेब ड्राइवर.

लोकेटर रणनीति निम्नलिखित मानों में से कोई भी हो सकती है।

  • ID
  • Selenium नाम से तत्व खोजें
  • कक्षा का नाम
  • टैग नाम
  • लिंक पाठ
  • आंशिक लिंक पाठ
  • XPATH

लोकेटर वैल्यू वह अद्वितीय मान है जिसका उपयोग करके किसी वेब तत्व की पहचान की जा सकती है। यह सुनिश्चित करना डेवलपर्स और परीक्षकों की जिम्मेदारी है कि वेब तत्व आईडी या नाम जैसे कुछ गुणों का उपयोग करके विशिष्ट रूप से पहचाने जा सकें।

उदाहरण:

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 कमांड सिंटैक्स

List<WebElement> elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));

इसमें तत्व खोजें Selenium कमांड पैरामीटर के रूप में By ऑब्जेक्ट लेता है और वेब एलिमेंट्स की एक सूची लौटाता है। यदि दिए गए लोकेटर रणनीति और लोकेटर मान का उपयोग करके कोई तत्व नहीं मिलता है, तो यह एक खाली सूची लौटाता है। नीचे तत्व खोजने के कमांड का सिंटैक्स दिया गया है।

उदाहरण:

List<WebElement> listOfElements = driver.findElements(By.xpath("//div"));

उदाहरण: तत्वों को खोजें Selenium

परिदृश्य:

चरण १: परीक्षणाधीन एप्लिकेशन का 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"));
    }
  }
}

तत्व खोजें Vs तत्व खोजें

नीचे तत्व खोजें और तत्व खोजें कमांड के बीच प्रमुख अंतर दिए गए हैं।

तत्व खोजें बनाम तत्व खोजें
तत्व खोजें बनाम तत्व खोजें Selenium
तत्व खोजें तत्व खोजें
यदि एक ही लोकेटर के साथ कई वेब तत्व पाए जाते हैं तो सबसे पहले सबसे अधिक वेब तत्व को लौटाता है वेब तत्वों की सूची लौटाता है
यदि लोकेटर रणनीति से मेल खाने वाले कोई तत्व नहीं हैं तो NoSuchElementException अपवाद फेंकता है यदि लोकेटर रणनीति से मेल खाने वाले कोई वेब तत्व नहीं हैं, तो एक खाली सूची लौटाता है
XPath द्वारा तत्व ढूँढने पर केवल एक वेब तत्व ही मिलेगा यह उन तत्वों का संग्रह ढूंढेगा जो लोकेटर रणनीति से मेल खाते हैं।
लागू नहीं प्रत्येक वेब तत्व को एक सरणी की तरह 0 से शुरू होने वाली संख्या के साथ अनुक्रमित किया जाता है

सारांश

  • तत्व खोजें कमांड उस वेब तत्व को लौटाता है जो वेब पेज के भीतर सबसे पहले तत्व से मेल खाता है।
  • तत्व खोजें कमांड उन वेब तत्वों की सूची लौटाता है जो मापदंड से मेल खाते हैं।
  • XPath द्वारा तत्व खोजें Selenium यदि यह मानदंड से मेल खाने वाला तत्व नहीं पाता है तो कमांड NoSuchElementException फेंकता है।
  • तत्व खोजें कमांड एक खाली सूची लौटाता है Selenium यदि मापदंड से मेल खाने वाला कोई तत्व नहीं है