टूलटिप को कैसे सत्यापित करें Selenium वेबड्राइवर
टूलटिप इन Selenium
A टूलटिप इन Selenium यह एक ऐसा टेक्स्ट है जो तब दिखाई देता है जब माउस वेब पेज पर किसी ऑब्जेक्ट पर होवर करता है। ऑब्जेक्ट एक लिंक, एक छवि, एक बटन, एक टेक्स्ट क्षेत्र आदि हो सकता है। टूलटिप टेक्स्ट अक्सर उस ऑब्जेक्ट के बारे में अधिक जानकारी देता है जिस पर उपयोगकर्ता माउस कर्सर को घुमाता है।
टूलटिप्स को पारंपरिक रूप से किसी तत्व के लिए 'शीर्षक' विशेषता के रूप में लागू किया जाता था। इस विशेषता का मान माउस-होवर पर टूलटिप के रूप में दिखाया जाता था। यह एक स्थिर पाठ है जो बिना किसी स्टाइलिंग के तत्व की जानकारी देता है।
अब, 'टूल टिप्स' कार्यान्वयन के लिए कई प्लगइन उपलब्ध हैं। स्टाइलिंग, रेंडरिंग, इमेज और लिंक के साथ उन्नत टूलटिप्स का उपयोग करके कार्यान्वयन किया जा रहा है Javaस्क्रिप्ट/JQuery प्लगइन्स या CSS टूलटिप्स का उपयोग करें।
- HTML “title” विशेषता का उपयोग करके कार्यान्वित किए जाने वाले स्थिर टूलटिप्स तक पहुँचने या उन्हें सत्यापित करने के लिए, हम बस WebElement की getAttribute(“title”) विधि का उपयोग कर सकते हैं। इस विधि का लौटाया गया मान (जो टूलटिप टेक्स्ट है) सत्यापन के लिए अपेक्षित मान से तुलना की जाती है।
- टूलटिप कार्यान्वयन के अन्य रूपों के लिए, हमें माउस होवर प्रभाव बनाने और फिर तत्व के लिए टूलटिप प्राप्त करने के लिए वेब ड्राइवर द्वारा प्रदान किए गए "उन्नत उपयोगकर्ता इंटरैक्शन एपीआई" का उपयोग करना होगा।
उन्नत उपयोगकर्ता इंटरैक्शन API का संक्षिप्त विवरण
उन्नत उपयोगकर्ता इंटरैक्शन एपीआई, वेबपेज पर कीबोर्ड या माउस का उपयोग करके उपयोगकर्ता क्रियाओं जैसे ड्रैग और ड्रॉप, होवरिंग, मल्टी सिलेक्टिंग, कुंजी प्रेस और रिलीज और अन्य क्रियाओं के लिए एपीआई प्रदान करता है।
आप इसका संदर्भ ले सकते हैं संपर्क एपीआई पर अधिक जानकारी के लिए कृपया देखें.
यहां, आइए देखें कि एक स्लाइडर तत्व को ऑफसेट द्वारा स्थानांतरित करने के लिए हमें कुछ कक्षाओं और विधियों का उपयोग कैसे करना होगा।
चरण 1) API का उपयोग करने के लिए, निम्नलिखित पैकेज/क्लासेस को आयात करना होगा:
चरण 2) “Actions” क्लास का ऑब्जेक्ट बनाएँ और उपयोगकर्ता क्रियाओं का अनुक्रम बनाएँ। Actions क्लास का उपयोग उपयोगकर्ता क्रियाओं जैसे moveToElement(), dragAndDrop() आदि का अनुक्रम बनाने के लिए किया जाता है। API द्वारा उपयोगकर्ता क्रियाओं से संबंधित विभिन्न विधियाँ प्रदान की जाती हैं।
ड्राइवर ऑब्जेक्ट को इसके कन्स्ट्रक्टर के लिए पैरामीटर के रूप में प्रदान किया जाता है।
चरण 3) “Actions” क्लास की build() विधि का उपयोग करके एक Action ऑब्जेक्ट बनाएँ। Actions ऑब्जेक्ट (यहाँ बिल्डर) द्वारा बनाए गए सभी एक्शन को निष्पादित करने के लिए perform() विधि को कॉल करें।
हमने देखा कि API द्वारा प्रदान किए गए कुछ उपयोगकर्ता क्रिया विधियों का उपयोग कैसे किया जाता है - clickAndHold(element), moveByOffset(10,0), release()। API ऐसी कई विधियाँ प्रदान करता है।
को देखें संपर्क अधिक जानकारी के लिए.
टूलटिप को कैसे सत्यापित (संभालें) करें Selenium
आइए सरल परिदृश्य में टूल टिप्स तक पहुंचने और उन्हें सत्यापित करने का प्रदर्शन देखें
- परिदृश्य 1: टूलटिप को “शीर्षक” विशेषता का उपयोग करके कार्यान्वित किया जाता है
- परिदृश्य 2: टूलटिप को jQuery प्लगइन का उपयोग करके कार्यान्वित किया जाता है।
परिदृश्य 1: HTML 'शीर्षक' विशेषता
इस मामले के लिए, आइए उदाहरण साइट लें - https://demo.guru99.com/test/social-icon.html.
हम पृष्ठ के शीर्ष दाईं ओर स्थित “github” आइकन के टूलटिप को सत्यापित करने का प्रयास करेंगे।
ऐसा करने के लिए, हम सबसे पहले तत्व को खोजेंगे और उसका 'शीर्षक' गुण प्राप्त करेंगे तथा अपेक्षित टूल टिप टेक्स्ट के साथ उसका सत्यापन करेंगे।
चूंकि, हम मान रहे हैं कि टूल टिप "शीर्षक" विशेषता में है, हम माउस होवर प्रभाव को स्वचालित भी नहीं कर रहे हैं, बल्कि केवल "getAttribute()" विधि का उपयोग करके विशेषता का मान पुनर्प्राप्त कर रहे हैं।
कोड यहाँ है
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.*; public class ToolTip { public static void main(String[] args) { String baseUrl = "https://demo.guru99.com/test/social-icon.html"; System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get(baseUrl); String expectedTooltip = "Github"; // Find the Github icon at the top right of the header WebElement github = driver.findElement(By.xpath(".//*[@class='soc-ico show-round']/a[4]")); //get the value of the "title" attribute of the github icon String actualTooltip = github.getAttribute("title"); //Assert the tooltip's value is as expected System.out.println("Actual Title of Tool Tip"+actualTooltip); if(actualTooltip.equals(expectedTooltip)) { System.out.println("Test Case Passed"); } driver.close(); } }
कोड का स्पष्टीकरण
- “github” आइकन का प्रतिनिधित्व करने वाले WebElement को ढूंढें।
- getAttribute() विधि का उपयोग करके इसकी “title” विशेषता प्राप्त करें।
- अपेक्षित टूलटिप मान के विरुद्ध मान का दावा करें.
परिदृश्य 2: JQuery प्लगइन
टूलटिप्स को क्रियान्वित करने के लिए बहुत सारे JQuery प्लगइन्स उपलब्ध हैं, और प्रत्येक का कार्यान्वयन थोड़ा अलग है।
कुछ प्लगइन्स यह अपेक्षा करते हैं कि टूलटिप HTML उस तत्व के बगल में हर समय मौजूद रहे जिसके लिए टूलटिप लागू है, जबकि अन्य एक गतिशील "div" टैग बनाते हैं, जो तत्व पर मंडराते समय तुरंत प्रकट होता है।
हमारे प्रदर्शन के लिए, आइए टूलटिप कार्यान्वयन के “jQuery टूल्स टूलटिप” तरीके पर विचार करें।
यहाँ यूआरएल में – https://demo.guru99.com/test/tooltip.html आप डेमो देख सकते हैं जहां "अभी डाउनलोड करें" पर माउस घुमाने पर, हमें एक उन्नत टूलटिप मिलता है जिसमें एक छवि, कॉलआउट पृष्ठभूमि, एक तालिका और उसके अंदर एक लिंक होता है जो क्लिक करने योग्य होता है।
यदि आप नीचे दिए गए स्रोत को देखें, तो आप देख सकते हैं कि टूलटिप का प्रतिनिधित्व करने वाला div टैग हमेशा “अभी डाउनलोड करें” लिंक के टैग के बगल में मौजूद होता है। लेकिन, नीचे दिए गए स्क्रिप्ट टैग के अंदर का कोड यह नियंत्रित करता है कि इसे कब पॉपअप करना है।
आइये, यहां हमारे प्रदर्शन के लिए टूलटिप में केवल लिंक टेक्स्ट को सत्यापित करने का प्रयास करें।
हम सबसे पहले “अभी डाउनलोड करें” से संबंधित वेबएलिमेंट को खोजेंगे। फिर इंटरैक्शन एपीआई का उपयोग करके, हम एलिमेंट (माउस-होवर) पर जाएंगे। इसके बाद, हम प्रदर्शित टूलटिप के अंदर लिंक से संबंधित वेबएलिमेंट को खोजेंगे और अपेक्षित टेक्स्ट के विरुद्ध इसे सत्यापित करेंगे।
कोड यहाँ है
import org.openqa.selenium.interactions.Action; import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.*; public class JqueryToolTip { public static void main(String[] args) { String baseUrl = "https://demo.guru99.com/test/tooltip.html"; System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); String expectedTooltip = "What's new in 3.2"; driver.get(baseUrl); WebElement download = driver.findElement(By.xpath(".//*[@id='download_now']")); Actions builder = new Actions (driver); builder.clickAndHold().moveToElement(download); builder.moveToElement(download).build().perform(); WebElement toolTipElement = driver.findElement(By.xpath(".//*[@class='box']/div/a")); String actualTooltip = toolTipElement.getText(); System.out.println("Actual Title of Tool Tip "+actualTooltip); if(actualTooltip.equals(expectedTooltip)) { System.out.println("Test Case Passed"); } driver.close(); } }
कोड स्पष्टीकरण
- उस वेबएलिमेंट को खोजें जो “अभी डाउनलोड करें” तत्व से मेल खाता है जिस पर हम माउस घुमाएँगे।
- इंटरैक्शन एपीआई का उपयोग करके, माउस को “अभी डाउनलोड करें” पर ले जाएं।
- मान लें कि टूलटिप प्रदर्शित है, तो टूलटिप के अंदर लिंक से संबंधित वेबएलिमेंट ढूंढें, अर्थात "a" टैग।
- getText() का उपयोग करके प्राप्त लिंक के टूलटिप टेक्स्ट को हमारे द्वारा “expectedToolTip” में संग्रहीत अपेक्षित मान के विरुद्ध सत्यापित करें
सारांश
इस ट्यूटोरियल में, आपने सीखा कि टूलटिप्स तक कैसे पहुँचें Selenium वेब ड्राइवर.
टूल टिप्स को विभिन्न तरीकों से क्रियान्वित किया जाता है-
- मूल कार्यान्वयन HTML की “शीर्षक” विशेषता पर आधारित है। getAttribute(title) टूलटिप का मान प्राप्त करता है।
- अन्य टूल टिप कार्यान्वयन जैसे कि JQuery, CSS टूलटिप्स को माउस होवर प्रभाव बनाने के लिए इंटरैक्शन API की आवश्यकता होती है
उन्नत उपयोगकर्ता इंटरैक्शन API–
- Actions वर्ग के moveToElement(element) का उपयोग किसी तत्व पर माउस घुमाने के लिए किया जाता है।
- Actions वर्ग की Build() विधि उपयोगकर्ता क्रियाओं के अनुक्रम को Action ऑब्जेक्ट में निर्मित करती है।
- Action वर्ग का Perform() उपयोगकर्ता की सभी क्रियाओं के अनुक्रम को एक साथ निष्पादित करता है।
किसी टूलटिप को सत्यापित करने के लिए, हमें पहले तत्व पर माउस घुमाना होगा, फिर टूलटिप से संबंधित तत्व को ढूंढना होगा और अपेक्षित मानों के विरुद्ध सत्यापन के लिए उसका पाठ या अन्य मान प्राप्त करना होगा।