वेबएलिमेंट Selenium
⚡ स्मार्ट सारांश
वेबएलिमेंट Selenium यह प्रत्येक फॉर्म कंट्रोल को एक प्रोग्रामेबल ऑब्जेक्ट के रूप में दर्शाता है, जिससे परीक्षकों को findElement, sendKeys, click, clear और submit विधियों का उपयोग करके टेक्स्ट फ़ील्ड, चेकबॉक्स, रेडियो बटन और सबमिट तत्वों के साथ इंटरैक्ट करने में सक्षम बनाता है। Java कोड उदाहरण.

वेबएलिमेंट Selenium
फॉर्म वेबसाइट के मूलभूत तत्व हैं जो वेबसाइट पर आने वाले आगंतुकों से जानकारी प्राप्त करते हैं। वेब फॉर्म में टेक्स्ट बॉक्स, पासवर्ड फ़ील्ड, चेकबॉक्स, रेडियो बटन, ड्रॉपडाउन और फ़ाइल इनपुट जैसे विभिन्न GUI नियंत्रण शामिल होते हैं।
यह ट्यूटोरियल बताता है कि प्रत्येक फॉर्म एलिमेंट को कैसे एक्सेस किया जाए। Selenium वेबड्राइवर के साथ Java. Selenium प्रत्येक फॉर्म तत्व को WebElement के ऑब्जेक्ट के रूप में समाहित करता है। यह API का उपयोग करके तत्वों का पता लगाता है और उन पर कार्रवाई करता है, जिसमें टेक्स्ट दर्ज करना, बटन पर क्लिक करना और फॉर्म सबमिट करना शामिल है। नीचे दिए गए अनुभाग प्रत्येक फॉर्म तत्व के लिए उपलब्ध विधियों को कवर करते हैं।
वेबएलिमेंट का परिचय, findElement(), findElements()
Selenium WebDriver एक साधारण फॉर्म तत्व को ऑब्जेक्ट के रूप में दर्शाता है। वेबएलिमेंट.
वेबड्राइवर फॉर्म तत्वों की पहचान वेब तत्व के विभिन्न गुणों का उपयोग करके करता है, जिनमें आईडी, नाम, क्लास आदि शामिल हैं। एक्सपाथटैगनाम, सीएसएस चयनकर्ता और लिंक टेक्स्ट।
WebDriver तत्वों को खोजने के लिए निम्नलिखित दो WebElement विधियाँ प्रदान करता है:
- तत्व खोजें() – एक वेब एलिमेंट को ढूंढता है और उसे वेबएलिमेंट के रूप में लौटाता है Selenium वस्तु।
- तत्व खोजें() - लोकेटर मानदंड से मेल खाने वाले WebElement ऑब्जेक्ट्स की एक सूची लौटाता है।
नीचे दिए गए उदाहरण में दिखाया गया है कि findElement() विधि का उपयोग करके वेब पेज पर मौजूद टेक्स्ट फ़ील्ड जैसे किसी एक एलिमेंट को WebElement ऑब्जेक्ट के रूप में कैसे प्राप्त किया जाता है। एकाधिक एलिमेंट खोजने के लिए findElements() विधि के उपयोग के बारे में आगे के ट्यूटोरियल में बताया जाएगा।
चरण 1) वेबएलिमेंट ऑब्जेक्ट बनाने के लिए आवश्यक पैकेज आयात करें।
चरण 2) नीचे दिखाए गए अनुसार, WebDriver क्लास में उपलब्ध findElement() मेथड को कॉल करके एक WebElement ऑब्जेक्ट प्राप्त करें।
Selenium इनपुट टेक्स्ट
इनपुट बॉक्स इन दो प्रकारों में से किसी एक को संदर्भित करते हैं:
- टेक्स्ट फ़ील्ड - Selenium इनपुट टेक्स्ट बॉक्स जो टाइप किए गए मानों को स्वीकार करते हैं और उन्हें ठीक उसी रूप में प्रदर्शित करते हैं जैसे दर्ज किए गए हैं।
- पासवर्ड फ़ील्ड – ऐसे टेक्स्ट बॉक्स जो टाइप किए गए मानों को स्वीकार करते हैं लेकिन संवेदनशील इनपुट को छिपाने के लिए उन्हें विशेष वर्णों (आमतौर पर बिंदु या तारांकन चिह्न) की एक श्रृंखला के रूप में छिपा देते हैं।
लोकेटर
findElement() विधि एक पैरामीटर लेती है, जो कि एलिमेंट को इंगित करने वाला लोकेटर होता है। By.id(), By.name(), By.xpath() और By.cssSelector() सहित विभिन्न लोकेटर, id, name या path जैसी प्रॉपर्टीज़ का उपयोग करके पेज पर एलिमेंट ढूंढते हैं।
आप एलिमेंट्स के लिए आईडी, एक्सपाथ और अन्य लोकेटर वैल्यू प्राप्त करने के लिए फायरपाथ जैसे प्लगइन का उपयोग कर सकते हैं।
उदाहरण साइट का उपयोग करना https://demo.guru99.com/test/login.htmlनीचे दिया गया कोड आईडी लोकेटर का उपयोग करके "ईमेल पता" टेक्स्ट फ़ील्ड और नाम लोकेटर का उपयोग करके "पासवर्ड" फ़ील्ड का पता लगाता है।
- ईमेल टेक्स्ट फ़ील्ड को आईडी द्वारा खोजा जा सकता है।
- पासवर्ड फ़ील्ड नाम के आधार पर स्थित है।
सेंडकीज़ इन Selenium
sendKeys() में Selenium यह विधि परीक्षण निष्पादन के दौरान टेक्स्ट और पासवर्ड फ़ील्ड में संपादन योग्य सामग्री दर्ज करने के लिए उपयोग की जाती है। इन फ़ील्ड्स को नाम, क्लास और आईडी जैसे लोकेटरों द्वारा पहचाना जाता है। यह विधि WebElement ऑब्जेक्ट पर उपलब्ध है। टाइप विधि के विपरीत, sendKeys() टेक्स्ट बॉक्स में मौजूदा टेक्स्ट को प्रतिस्थापित नहीं करती है।
टेक्स्ट कैसे दर्ज करें Selenium
टेक्स्ट फ़ील्ड और पासवर्ड फ़ील्ड में टेक्स्ट दर्ज करने के लिए, webElement पर उपलब्ध sendKeys() विधि का उपयोग किया जाता है। Selenium.
इसी उदाहरण का उपयोग करते हुए https://demo.guru99.com/test/login.htmlनीचे दिया गया कोड टेक्स्ट फ़ील्ड और पासवर्ड फ़ील्ड का पता लगाता है और उनमें टेक्स्ट दर्ज करता है। Selenium.
- आईडी लोकेटर का उपयोग करके "ईमेल पता" टेक्स्ट फ़ील्ड ढूंढें।
- नेम लोकेटर का उपयोग करके "पासवर्ड" फ़ील्ड ढूंढें।
- "ईमेल पता" में पाठ दर्ज करें Selenium sendKeys विधि।
- sendKeys() विधि का उपयोग करके “पासवर्ड” फ़ील्ड में पासवर्ड दर्ज करें।
इनपुट में मान हटाना Boxes
RSI स्पष्ट() यह विधि इनपुट बॉक्स के अंदर के टेक्स्ट को डिलीट करती है। इस विधि में पैरामीटर की आवश्यकता नहीं होती है। नीचे दिया गया कोड स्निपेट ईमेल या पासवर्ड फ़ील्ड से टेक्स्ट को हटा देता है।
Selenium बटन क्लिक करें
RSI Selenium क्लिक बटन को क्लिक() विधि का उपयोग करके एक्सेस किया जाता है।
उपरोक्त उदाहरण में
- लॉग इन करने के लिए बटन ढूंढें।
- प्रमाणीकरण के लिए साइट के लॉगिन पेज पर "साइन-इन" बटन पर क्लिक करें।
Selenium सबमिट बटन
सबमिट बटन पूरे फॉर्म को सर्वर पर भेज देता है। आप या तो ऊपर दिखाए गए तरीके से वेबएलिमेंट पर क्लिक() मेथड को कॉल कर सकते हैं, या फॉर्म के किसी भी एलिमेंट पर या सबमिट बटन पर ही सबमिट() मेथड का उपयोग कर सकते हैं।
जब submit() फ़ंक्शन का उपयोग किया जाता है, तो WebDriver DOM में उस फ़ॉर्म की पहचान करने के लिए देखता है जिससे वह तत्व संबंधित है और फिर उसके सबमिट फ़ंक्शन को ट्रिगर करता है।
पूर्ण Code
यह रहा पूरा कार्यशील कोड।
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.*;
public class Form {
public static void main(String[] args) {
// declaration and instantiation of objects/variables
System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
String baseUrl = "https://demo.guru99.com/test/login.html";
driver.get(baseUrl);
// Get the WebElement corresponding to the Email Address(TextField)
WebElement email = driver.findElement(By.id("email"));
// Get the WebElement corresponding to the Password Field
WebElement password = driver.findElement(By.name("passwd"));
email.sendKeys("abcd@gmail.com");
password.sendKeys("abcdefghlkjl");
System.out.println("Text Field Set");
// Deleting values in the text box
email.clear();
password.clear();
System.out.println("Text Field Cleared");
// Find the submit button
WebElement login = driver.findElement(By.id("SubmitLogin"));
// Using click method to submit form
email.sendKeys("abcd@gmail.com");
password.sendKeys("abcdefghlkjl");
login.click();
System.out.println("Login Done with Click");
// Using submit method to submit the form. Submit used on password field
driver.get(baseUrl);
driver.findElement(By.id("email")).sendKeys("abcd@gmail.com");
driver.findElement(By.name("passwd")).sendKeys("abcdefghlkjl");
driver.findElement(By.id("SubmitLogin")).submit();
System.out.println("Login Done with Submit");
// driver.close();
}
}
समस्या निवारण
यदि आपको एलिमेंट ढूंढते समय NoSuchElementException() की समस्या आती है, तो इसका मतलब है कि जिस समय वेबड्राइवर ने उस एलिमेंट को एक्सेस किया, उस समय वह पेज पर मौजूद नहीं था।
- फायरपाथ या क्रोम में 'इंस्पेक्ट एलिमेंट' विकल्प का उपयोग करके अपने लोकेटर की दोबारा जांच करें।
- जांचें कि कोड में उपयोग किया गया मान फायरपाथ में दिखाई देने वाले तत्व के वर्तमान मान से भिन्न है या नहीं।
- कुछ तत्वों के लिए कुछ विशेषताएँ गतिशील होती हैं। यदि कोई मान गतिशील रूप से बदलता है, तो By.xpath() या By.cssSelector() का उपयोग करें, जो अधिक विश्वसनीय हैं लेकिन थोड़े अधिक जटिल हैं।
- कभी-कभी समस्या प्रतीक्षा की स्थिति के कारण होती है; वेबड्राइवर पेज के पूरी तरह लोड होने से पहले ही कोड को निष्पादित कर सकता है।
- अंतर्निहित या स्पष्ट प्रतीक्षा का उपयोग करके findElement() से पहले प्रतीक्षा जोड़ें।
सारांश
- नीचे दी गई तालिका में ऊपर चर्चा किए गए प्रत्येक प्रकार के तत्व तक पहुँचने के लिए आवश्यक कमांड का सारांश दिया गया है।
| तत्व | आदेश | विवरण |
|---|---|---|
| निवेश Box | sendKeys () | टेक्स्ट बॉक्स में मान दर्ज करने के लिए उपयोग किया जाता है। |
| स्पष्ट() | टेक्स्ट बॉक्स से उनके वर्तमान मान को हटाने के लिए उपयोग किया जाता है। | |
| लिंक | क्लिक करें() | इसका उपयोग लिंक पर क्लिक करने और अगले कमांड पर आगे बढ़ने से पहले पेज के लोड होने की प्रतीक्षा करने के लिए किया जाता था। |
| बटन सबमिट करें | जमा करना() | इसका उपयोग पैरेंट फॉर्म के सबमिट हैंडलर को ट्रिगर करके फॉर्म सबमिट करने के लिए किया जाता है। |
- वेबड्राइवर एकाधिक SELECT तत्व में एक से अधिक विकल्पों के चयन की अनुमति देता है।
- आप फॉर्म के किसी भी एलिमेंट पर submit() मेथड का उपयोग कर सकते हैं। WebDriver स्वचालित रूप से उस फॉर्म के सबमिट फ़ंक्शन को ट्रिगर करता है जिससे वह एलिमेंट संबंधित है।






