Selenium कोर एक्सटेंशन (User-Extensions.js)
एक्सटेंशन को समझने के लिए, आइए पहले सेलेनियम आईडीई के तीन स्तंभों को समझें
- क्रिया: आप UI स्क्रीन पर कौन सा ऑपरेशन कर रहे हैं
- मूल्यांकनकर्ता/अभिकथन: आप UI से प्राप्त डेटा पर क्या सत्यापन करते हैं?
- लोकेटर रणनीति: हम यूआई में तत्व कैसे ढूंढ सकते हैं।
अभी, Selenium आईडीई में बहुत सारी क्रियाएं, अभिकथन/मूल्यांकनकर्ता और लोकेटर रणनीतियों के साथ एक बहुत ही परिपक्व लाइब्रेरी है।
लेकिन कभी-कभी हमें अपनी परियोजना आवश्यकताओं के लिए इसमें कुछ और कार्यक्षमता जोड़ने की आवश्यकता होती है। उस स्थिति में, हम अपने कस्टम एक्सटेंशन जोड़कर इस लाइब्रेरी का विस्तार कर सकते हैं। इन कस्टम एक्सटेंशन को 'यूजर एक्सटेंशन' कहा जाता है।
उदाहरण के लिए, हमें एक एक्शन की आवश्यकता है जो वेब एलिमेंट में भरने से पहले टेक्स्ट को अपर केस में बदल सके। आप इस एक्शन को डिफ़ॉल्ट एक्शन लाइब्रेरी में नहीं पा सकते हैं। ऐसे मामले में आप अपना खुद का 'यूजर एक्सटेंशन' बना सकते हैं। इस ट्यूटोरियल में, हम सीखेंगे कि टेक्स्ट को अपर केस में बदलने के लिए यूजर एक्सटेंशन कैसे बनाया जाता है
बनाने की आवश्यकता Selenium उपयोगकर्ता एक्सटेंशन
के लिए उपयोगकर्ता एक्सटेंशन बनाने के लिए Selenium आईडीई के लिए हमें मूल अवधारणा को जानना होगा Javaलिपि और Java स्क्रिप्ट प्रोटोटाइप ऑब्जेक्ट अवधारणा.
अपना उपयोगकर्ता एक्सटेंशन बनाने के लिए, आपको बनाना होगा Java स्क्रिप्ट विधियों को सेलेनियम ऑब्जेक्ट प्रोटोटाइप और पेजबॉट ऑब्जेक्ट प्रोटोटाइप में जोड़ें।
कैसे Selenium IDE उपयोगकर्ता एक्सटेंशन को पहचानता है?
उपयोगकर्ता एक्सटेंशन को जोड़ने के बाद Selenium जब हम IDE शुरू करते हैं Selenium आईडीई में, जावास्क्रिप्ट प्रोटोटाइप में ये सभी एक्सटेंशन लोड हो जाते हैं, और Selenium आईडीई उन्हें उनके नाम से पहचानता है।
उपयोगकर्ता एक्सटेंशन कैसे बनाएं
चरण 1) कार्रवाई- सभी क्रियाएं "do" से शुरू होती हैं, यानी यदि क्रिया बड़े केस टेक्स्ट के लिए है तो उसका नाम होगा doTextUpperCase. जब हम इस क्रिया विधि को जोड़ते हैं Selenium आईडीई, Selenium IDE खुद ही इस क्रिया के लिए एक प्रतीक्षा विधि बनाएगा। तो इस मामले में जब हम बनाते हैं doTextUpperCase कार्रवाई, Selenium IDE एक संगत प्रतीक्षा फ़ंक्शन बनाएगा टेक्स्टअपरकेसऔरप्रतीक्षा करेंयह दो पैरामीटर स्वीकार कर सकता है
उदाहरण: अपर केस टेक्स्ट एक्शन
Selenium.prototype.doTextUpperCase = function(locator, text) {
// Here findElement is itself capable to handle all type of locator(xpath,css,name,id,className), We just need to pass the locator text
var element = this.page().findElement(locator);
// Create the text to type
text = text.toUpperCase();
// Replace the element text with the new text
this.page().replaceText(element, text);
};
चरण 2) मूल्यांकनकर्ता/अभिकथन- सेलेनियम ऑब्जेक्ट प्रोटोटाइप में पंजीकृत सभी मूल्यांकनकर्ताओं को उपसर्ग किया जाएगा
"get" या "is" द्वारा उदाहरण getValueFromCompoundTable, isValueFromCompoundTable। यह दो पैरामीटर स्वीकार कर सकता है, एक लक्ष्य के लिए और दूसरा परीक्षण मामले में मान फ़ील्ड के लिए।
प्रत्येक मूल्यांकनकर्ता के लिए, “सत्यापन”, “दावा” और “प्रतीक्षा के लिए” उपसर्ग द्वारा उपसर्गित संबंधित सत्यापन फ़ंक्शन होंगे
उदाहरण: अपर केस टेक्स्ट मूल्यांकनकर्ताओं के लिए
Selenium.prototype.assertTextUpperCase = function(locator, text) {
// All locator-strategies are automatically handled by "findElement"
var element = this.page().findElement(locator);
// Create the text to verify
text = text.toUpperCase();
// Get the actual element value
var actualValue = element.value;
// Make sure the actual value matches the expected
Assert.matches(expectedValue, actualValue);
};
Selenium.prototype.isTextEqual = function(locator, text) {
return this.getText(locator).value===text;
};
Selenium.prototype.getTextValue = function(locator, text) {
return this.getText(locator).value;
};
चरण 3) लोकेटर रणनीति- यदि हम किसी तत्व का पता लगाने के लिए अपना स्वयं का फ़ंक्शन बनाना चाहते हैं तो
हमें PageBot प्रोटोटाइप को “locateElementBy” उपसर्ग वाले फ़ंक्शन के साथ विस्तारित करने की आवश्यकता है।
यह दो पैरामीटर लेगा, पहला लोकेटर स्ट्रिंग होगा और दूसरा डॉक्यूमेंट होगा
जहां इसकी खोज की आवश्यकता है।
उदाहरण: अपर केस टेक्स्ट लोकेटर के लिए
// The "inDocument" is a document you are searching.
PageBot.prototype.locateElementByUpperCase = function(text, inDocument) {
// Create the text to search for
var expectedValue = text.toUpperCase();
// Loop through all elements, looking for ones that have
// a value === our expected value
var allElements = inDocument.getElementsByTagName("*");
// This star '*' is a kind of regular expression it will go through every element (in HTML DOM every element surely have a tag name like<body>,<a>,<h1>,<table>,<tr>,<td> etc. ). Here our motive is to find an element which matched with the Upper Case text we have passed so we will search it with all elements and when we get match we will have the correct web element.
for (var i = 0; i < allElements.length; i++) {
var testElement = allElements[i];
if (testElement.innerHTML && testElement.innerHTML === expectedValue) {
return testElement;
}
}
return null;
};
नव निर्मित कोर एक्सटेंशन का उपयोग कैसे करें?
- Selenium आईडीई
विकल्प -> विकल्प पर क्लिक करें…
- सामान्य अनुभाग में नव निर्मित स्थान का चयन करें Selenium कोर एक्सटेंशन
- OK पर क्लिक करें और पुनः प्रारंभ करें Selenium आईडीई
- आपको कमांड सूची में एक्सटेंशन मिलेगा
यहां लोकप्रिय एक्सटेंशन/प्लग-इन की सूची दी गई है Selenium आईडीई
| नाम | उद्देश्य |
|---|---|
| पसंदीदा | किसी परीक्षण सूट को पसंदीदा के रूप में चिह्नित करना और उन्हें एक क्लिक में निष्पादित करना |
| फ्लेक्स पायलट एक्स | फ्लेक्स आधारित स्वचालन के लिए |
| फ्लेक्समॉन्कियम | एडोब फ्लेक्स आधारित रिकॉर्डिंग और प्लेबैक के लिए परीक्षण in Selenium आईडीई |
| फ़ाइल लॉगिंग | लॉग को फ़ाइल में सहेजने के लिए |
| प्रवाह नियंत्रण | परीक्षण निष्पादन प्रवाह को नियंत्रित करने के लिए |
| तत्वों को हाइलाइट करें | वेब नियंत्रण को हाइलाइट करने के लिए |
| निहित प्रतीक्षा | किसी तत्व के लिए निश्चित समय सीमा तक प्रतीक्षा करना |
| असफल होने पर स्क्रीनशॉट | विफलता पर स्क्रीनशॉट लें |
| परीक्षण के परिणाम | सहेजें परीक्षण का मामला एक क्लिक में टेस्ट सूट का परिणाम |
आप ये सभी और बहुत कुछ यहाँ से प्राप्त कर सकते हैं Seleniumमुख्यालय आधिकारिक साइट का डाउनलोड अनुभाग
http://docs.seleniumhq.org/download/
सारांश
- इसके तीन भाग हैं Selenium आईडीई, कार्रवाई, मूल्यांकनकर्ता/अभिकथन, लोकेटर रणनीति।
- उपयोगकर्ता एक्सटेंशन तब बनाया जाता है, जब Selenium आईडीई वर्तमान आवश्यकता को पूरा नहीं कर रहा है।
- उपयोगकर्ता एक्सटेंशन बनाने के लिए सेलेनियम के ऑब्जेक्ट प्रोटोटाइप में जावास्क्रिप्ट जोड़ना आवश्यक है।
- एक्सटेंशन बनाने के बाद, इसे जोड़ना आवश्यक है Selenium IDE को पुनरारंभ करें.









