सेलेनियम में टूलटिप
सेलेनियम में एक टूलटिप एक पाठ है जो तब दिखाई देता है जब एक माउस वेब पेज पर किसी ऑब्जेक्ट पर हो जाता है। ऑब्जेक्ट एक लिंक, एक छवि, एक बटन, एक पाठ क्षेत्र, आदि हो सकता है। टूलटिप पाठ अक्सर उस वस्तु के बारे में अधिक जानकारी देता है जिस पर उपयोगकर्ता माउस कर्सर पर घूमता है।
टूलटिप्स को पारंपरिक रूप से एक तत्व को 'शीर्षक' विशेषता के रूप में लागू किया गया था। इस विशेषता का मान माउस-होवर पर टूलटिप के रूप में दिखाया गया था। यह एक स्थिर पाठ है जिसमें बिना स्टाइल के तत्व की जानकारी दी गई है।
अब, 'टूल टिप्स' के कार्यान्वयन के लिए कई प्लगइन्स उपलब्ध हैं। जावास्क्रिप्ट, JQuery प्लगइन्स या सीएसएस टूलटिप्स का उपयोग करके स्टाइलिंग, रेंडरिंग, चित्र और लिंक के साथ उन्नत टूलटिप्स लागू किए जा रहे हैं।
- HTML "शीर्षक" विशेषता का उपयोग करके लागू किए जाने वाले स्थिर टूलटिप्स तक पहुंचने या सत्यापित करने के लिए, हम बस WebElement की getAttribute ("शीर्षक") विधि का उपयोग कर सकते हैं। सत्यापन के लिए अपेक्षित मान के साथ इस विधि (जो टूलटिप पाठ है) का लौटा हुआ मान है।
- टूलटिप कार्यान्वयन के अन्य रूपों के लिए, हमें माउस हॉवर प्रभाव बनाने के लिए वेब ड्राइवर द्वारा प्रदान की गई "उन्नत उपयोगकर्ता इंटरैक्शन एपीआई" का उपयोग करना होगा और फिर टूलटिप को तत्व के लिए पुनः प्राप्त करना होगा।
उन्नत उपयोगकर्ता सहभागिता API का संक्षिप्त विवरण:
उन्नत उपयोगकर्ता इंटरैक्शन API उपयोगकर्ता को वेब पेज पर कीबोर्ड या माउस का उपयोग करके ड्रैग एंड ड्रॉप, होवरिंग, मल्टी सेलेक्टिंग, की प्रेस और रिलीज़ और अन्य कार्यों जैसे उपयोगकर्ता कार्यों के लिए एपीआई प्रदान करता है।
एपीआई पर अधिक जानकारी के लिए आप इस लिंक को देख सकते हैं।
https://seleniumhq.github.io/selenium/docs/api/java/index.html?org/openqa/selenium/interactions/Actions.html
यहाँ, आइए देखें कि कुछ वर्गों और विधियों का उपयोग करने के लिए हमें एक ऑफसेट द्वारा स्लाइडर तत्व को स्थानांतरित करने की आवश्यकता होगी।
चरण 1) एपीआई का उपयोग करने के लिए, निम्नलिखित पैकेजों / वर्गों को आयात करने की आवश्यकता है:
चरण 2) "कार्रवाई" वर्ग का एक ऑब्जेक्ट बनाएं और उपयोगकर्ता कार्यों के अनुक्रम का निर्माण करें। एक्शन क्लास का उपयोग उपयोगकर्ता कार्यों के अनुक्रम को बनाने के लिए किया जाता है जैसे कि मूवमेंट (), ड्रैगएंडड्रॉप () आदि। उपयोगकर्ता क्रियाओं से संबंधित विभिन्न तरीके एपीआई द्वारा प्रदान किए जाते हैं।
ड्राइवर ऑब्जेक्ट को इसके निर्माता के लिए एक पैरामीटर के रूप में प्रदान किया जाता है।
चरण 3) "कार्रवाई" वर्ग के निर्माण () पद्धति का उपयोग करके एक एक्शन ऑब्जेक्ट बनाएं। कार्य ऑब्जेक्ट (बिल्डर यहां) द्वारा निर्मित सभी कार्यों को निष्पादित करने के लिए प्रदर्शन () विधि को कॉल करें।
हमने देखा है कि एपीआई द्वारा दिए गए उपयोगकर्ता क्रिया विधियों में से कुछ का उपयोग कैसे करें - clickAndHold (तत्व), MoveByOffset (10,0), रिलीज़ ()। एपीआई ऐसे कई तरीके प्रदान करता है।
अधिक जानकारी के लिए लिंक देखें।
सेलेनियम वेबड्राइवर में टूलटिप टेक्स्ट कैसे प्राप्त करें
आइए सरल परिदृश्य में टूल युक्तियों तक पहुंचने और सत्यापित करने का प्रदर्शन देखें
- परिदृश्य 1: टूलटिप को "शीर्षक" विशेषता का उपयोग करके कार्यान्वित किया जाता है
- परिदृश्य 2: टूलटिप एक jQuery प्लगइन का उपयोग करके कार्यान्वित किया जाता है।
परिदृश्य 1: HTML 'शीर्षक' गुण
इस मामले के लिए, उदाहरण के लिए साइट पर जाएँ - http://demo.guru99.com/test/social-icon.html।
हम पृष्ठ के शीर्ष दाईं ओर "github" आइकन के टूलटिप को सत्यापित करने का प्रयास करेंगे।
ऐसा करने के लिए, हम पहले तत्व को ढूंढेंगे और उसका 'शीर्षक' गुण प्राप्त करेंगे और अपेक्षित टूल टिप टेक्स्ट के साथ सत्यापन करेंगे।
चूंकि, हम मान रहे हैं कि टूल टिप "शीर्षक" विशेषता में है, हम माउस होवर प्रभाव को स्वचालित भी नहीं कर रहे हैं, लेकिन केवल "getAttribute ()" विधि का उपयोग करके विशेषता के मान को पुनः प्राप्त कर रहे हैं।
यहाँ कोड है
आयात org.openqa.selenium.By;आयात org.openqa.selenium.WebDriver;आयात org.openqa.selenium.chrome.ChromeDriver;आयात org.openqa.selenium। *;सार्वजनिक वर्ग टूलटिप {सार्वजनिक स्थैतिक शून्य main (String [] args) {स्ट्रिंग आधार = "http://demo.guru99.com/test/social-icon.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver ड्राइवर = नया ChromeDriver ();Driver.get (baseUrl);स्ट्रिंग अपेक्षितटूलिप = "जीथब";// शीर्ष लेख के शीर्ष दाईं ओर Github आइकन ढूंढेंWebElement github = driver.findElement (By.xpath (".//* I.@ class = 'सोशल-आईको शो-राउंड']] / [[4]");// जीथब आइकन के "शीर्षक" विशेषता का मूल्य प्राप्त करेंस्ट्रिंग वास्तविकटूलिप = जीथूब.गेट एट्रिब्यूट ("शीर्षक");// टूलटिप के मान को अपेक्षा के अनुसार दर्ज करेंSystem.out.println ("टूल टिप का वास्तविक शीर्षक" + वास्तविक टूलटिप);अगर (realTooltip.equals (अपेक्षितटूलिप)) {System.out.println ("टेस्ट केस पास");}Driver.close ();}}
कोड की व्याख्या
- "Github" आइकन का प्रतिनिधित्व करने वाले WebElement का पता लगाएं।
- GetAttribute () पद्धति का उपयोग करके इसकी "शीर्षक" विशेषता प्राप्त करें।
- अपेक्षित टूलटिप मान के विरुद्ध मान दर्ज करें।
परिदृश्य 2: JQuery प्लगइन:
टूलटिप्स को लागू करने के लिए बहुत सारे JQuery प्लगइन्स उपलब्ध हैं, और हर एक में कार्यान्वयन का एक अलग रूप है।
कुछ प्लगइन्स को उम्मीद है कि टूलटिप HTML उस तत्व के बगल में हर समय मौजूद रहेगा जिसके लिए टूलटिप लागू है, जबकि अन्य एक गतिशील "div" टैग बनाते हैं, जो तत्व पर मँडराते समय मक्खी पर दिखाई देता है।
हमारे प्रदर्शन के लिए, आइए टूलटिप कार्यान्वयन के "jQuery उपकरण टूलटिप" तरीके पर विचार करें।
यहां URL - http://demo.guru99.com/test/tooltip.html में आप डेमो देख सकते हैं, जहां "अब डाउनलोड करें" पर माउस मँडरा रहा है, हमें एक छवि, कॉलआउट बैकग्राउंड, एक टेबल के साथ एक उन्नत टूलटिप मिलता है। इसके अंदर एक लिंक जो क्लिक करने योग्य है।
यदि आप नीचे दिए गए स्रोत को देखते हैं, तो आप देख सकते हैं कि टूलटिप का प्रतिनिधित्व करने वाला div टैग हमेशा "डाउनलोड अब" लिंक के टैग के बगल में मौजूद होता है। लेकिन, नीचे स्क्रिप्ट टैग के अंदर कोड को पॉपअप करने की आवश्यकता होती है।
चलो हमारे प्रदर्शन के लिए टूलटिप में सिर्फ लिंक पाठ को सत्यापित करने का प्रयास करें।
हम पहले "अब डाउनलोड करें" के अनुरूप वेबइलमेंट पाएंगे। फिर इंटरैक्शन एपीआई का उपयोग करते हुए, हम तत्व (माउस-होवर) पर जाएंगे। अगला, हम WebElement पाएंगे जो प्रदर्शित टूलटिप के अंदर लिंक से मेल खाता है और अपेक्षित पाठ के खिलाफ इसे सत्यापित करता है।
यहाँ कोड है
आयात org.openqa.selenium.interactions.Action;आयात org.openqa.selenium.interactions.Actions;आयात org.openqa.selenium.By;आयात org.openqa.selenium.WebDriver;आयात org.openqa.selenium.chrome.ChromeDriver;आयात org.openqa.selenium। *;सार्वजनिक वर्ग JqueryToolTip {सार्वजनिक स्थैतिक शून्य main (String [] args) {स्ट्रिंग आधार = "http://demo.guru99.com/test/tooltip.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver ड्राइवर = नया ChromeDriver ();स्ट्रिंग अपेक्षितटूलिप = "3.2 में नया क्या है";Driver.get (baseUrl);WebElement डाउनलोड = driver.findElement (By.xpath (".//* I.@ id = 'download_now']"));एक्शन बिल्डर = नए एक्शन (ड्राइवर);बिल्डर .clickAndHold ()। MoveToElement (डाउनलोड);बिल्डर।WebElement toolTipElement = driver.findElement (By.xpath (".//* [@ class = 'box'] / div / a"));स्ट्रिंग वास्तविकटूलिप = टूलटाइपमेंट.गेटटेक्स्ट ();System.out.println ("टूल टिप का वास्तविक शीर्षक" + वास्तविक टूलटिप);अगर (realTooltip.equals (अपेक्षितटूलिप)) {System.out.println ("टेस्ट केस पास");}Driver.close ();}}
कोड स्पष्टीकरण
- उस वेबइमेंट को ढूंढें जो तत्व "अब डाउनलोड करें" से मेल खाती है कि हम माउस-होवर करेंगे।
- "अभी डाउनलोड करें" पर इंटरैक्शन API, माउस होवर का उपयोग करना।
- टूलटिप प्रदर्शित होने पर, WebElement खोजें जो टूलटिप के अंदर लिंक से मेल खाता है अर्थात "a" टैग।
- लिंक के टूलटिप पाठ को सत्यापित करें, जिसे हमने "अपेक्षित टाइटल" में संग्रहित एक अपेक्षित मूल्य के विरुद्ध गेटटेक्स्ट () का उपयोग करके प्राप्त किया है।
सारांश:
इस ट्यूटोरियल में, आपने सीखा है कि सेलेनियम वेब ड्राइवर का उपयोग करके टूलटिप्स का उपयोग कैसे करें।
- उपकरण युक्तियाँ विभिन्न तरीकों से कार्यान्वित की जाती हैं -
- मूल कार्यान्वयन HTML के "शीर्षक" विशेषता पर आधारित है। getAttribute (शीर्षक) टूलटिप का मान प्राप्त करता है।
- JQuery की तरह अन्य टूल टिप कार्यान्वयन, सीएसएस टूलटिप्स को माउस हॉवर प्रभाव बनाने के लिए इंटरैक्शन एपीआई की आवश्यकता होती है
- उन्नत उपयोगकर्ता सहभागिता API
- MoveToElement (तत्व) एक्शन क्लास का उपयोग किसी तत्व को माउस करने के लिए किया जाता है।
- एक्शन क्लास की बिल्ड () विधि उपयोगकर्ता की क्रियाओं के अनुक्रम को एक्शन ऑब्जेक्ट में बनाती है।
- क्रिया वर्ग का प्रदर्शन () उपयोगकर्ता क्रियाओं के सभी अनुक्रमों को एक साथ निष्पादित करता है।
- टूलटिप को सत्यापित करने के लिए, हमें पहले तत्व को माउस-होवर करना होगा, फिर उस टूल को ढूंढना होगा जो टूल टिप से मेल खाता है और अपेक्षित मानों के विरुद्ध सत्यापित करने के लिए इसका पाठ या अन्य मान प्राप्त करें।