रोबोट क्लास
सेलेनियम में रोबोट क्लास का उपयोग जावा प्लेटफॉर्म के कार्यान्वयन के लिए स्वचालित परीक्षण को सक्षम करने के लिए किया जाता है। यह टेस्ट ऑटोमेशन, सेल्फ-रनिंग डेमो और अन्य एप्लिकेशन के लिए नेटिव सिस्टम में इनपुट घटनाओं को उत्पन्न करता है, जहां उपयोगकर्ताओं को माउस और कीबोर्ड पर नियंत्रण की आवश्यकता होती है। रोबोट क्लास को लागू करना आसान है और इसे आसानी से एक स्वचालित ढांचे के साथ एकीकृत किया जा सकता है।
रोबोट क्लास क्यों?
सेलेनियम में रोबोट क्लास का उपयोग किया जाता है, क्योंकि कुछ सेलेनियम स्वचालन परीक्षणों में, उपयोगकर्ताओं को ओएस विंडोज के साथ बातचीत करने के लिए कीबोर्ड या माउस पर नियंत्रण की आवश्यकता होती है, जैसे कि पॉप-अप, प्रिंट पॉप-अप, आदि और देशी ऐप जैसे नोटपैड, कैलकुलेटर आदि। Webdriver इन पॉप-अप / एप्लिकेशन को संभाल नहीं सकता है, इसलिए जावा संस्करण 1.3 में, रोबोट क्लास को पेश किया गया था जो ओएस पॉप-अप / एप्लिकेशन को संभाल सकता है।
इस ट्यूटोरियल में आप सीखेंगे,
- रोबोट क्लास के लाभ
- रोबोट क्लास का प्रलेखन
- रोबोट क्लास के आंतरिक तरीकों और उपयोग को समझना
- TestNG का उपयोग करके रोबोट क्लास कोड को कैसे निष्पादित करें
- रोबोट वर्ग के डिस-फ़ायदे
रोबोट क्लास के लाभ
- रोबोट क्लास कीबोर्ड और माउस इवेंट का अनुकरण कर सकता है
- सेलेनियम वेब ड्राइवर का उपयोग करते समय रोबोट क्लास फाइलों को अपलोड / डाउनलोड करने में मदद कर सकती है
- रोबोट क्लास को वर्तमान स्वचालन ढांचे (कीवर्ड, डेटा-चालित या हाइब्रिड) के साथ आसानी से एकीकृत किया जा सकता है
रोबोट क्लास प्रलेखन क्या है?
रोबोट कक्षा प्रलेखन सेलेनियम में उन मूल परिभाषा, वाक्य रचना और सभी तरीकों और कार्यों जावा AWT पैकेज में रोबोट कक्षा में उपलब्ध का उपयोग समझ में मदद करता है। उपयोगकर्ता आधिकारिक ओरेकल वेबसाइट पर प्रलेखन देख सकते हैं। उपयोगकर्ता स्वयं अपने स्थानीय मशीन पर भी दस्तावेज़ बना सकते हैं।
स्थानीय मशीन पर प्रलेखन बनाने के लिए, नीचे दिए गए चरणों का पालन करें-
चरण 1) आपको जेडडीके फ़ोल्डर में src.zip फ़ाइल मिलेगी। Src.zip की प्रतिलिपि बनाएँ और किसी अन्य फ़ोल्डर या निर्देशिका में समान निकालें (D: या E:)
चरण 2) निकालें src फ़ोल्डर और नेविगेट (src फ़ोल्डर तक पथ) / src / java / awt
चरण 3) awt फ़ोल्डर के वर्तमान स्थान की प्रतिलिपि बनाएँ और कमांड प्रॉम्प्ट खोलें।
चरण 4) cmd में, अपने वर्तमान निर्देशिका स्थान को awt फ़ोल्डर में बदलें और नीचे दिखाए अनुसार 'javadoc * .java' लिखें।
सिस्टम के प्रोसेस के लिए थोड़ी देर प्रतीक्षा करें, एक बार पूरा होने पर आपको awt फ़ोल्डर में कुछ HTML फाइलें दिखाई देंगी।
चरण 5) index.html खोलें
चरण 6) यहां आपके पास awt पैकेज के पूर्ण प्रलेखन हैं, बाएं नेविगेशन बार से 'रोबोट' हाइपरलिंक पर क्लिक करें (नीचे चित्र में 1 देखें)।
यहां आप रोबोट क्लास के सभी तरीके और इंटरफेस भी देख सकते हैं (ऊपर चित्र में देखें 2 देखें)।
रोबोट क्लास के आंतरिक तरीकों और उपयोग को समझना
ब्राउज़र ऑटोमेशन करते समय कीबोर्ड / माउस ईवेंट के साथ बातचीत करने के लिए रोबोट क्लास के तरीकों का इस्तेमाल किया जा सकता है। वैकल्पिक रूप से AutoIT का उपयोग किया जा सकता है, लेकिन इसका दोष यह है कि यह एक निष्पादन योग्य फ़ाइल (exe) उत्पन्न करता है जो केवल खिड़कियों पर काम करेगा, इसलिए यह उपयोग करने के लिए एक अच्छा विकल्प नहीं है।
वेब ऑटोमेशन के दौरान रोबोट क्लास के कुछ सामान्य और प्रचलित तरीके:
- keyPress (): उदाहरण: robot.keyPress (KeyEvent.VK_DOWN): कीबोर्ड की कुंजी दबाएं।
- mousePress (): उदाहरण : robot.mousePress (InputEvent.BUTTON3_DOWN_MASK): यह विधि आपके माउस के राइट क्लिक को दबाएगी।
- mouseMove (): उदाहरण : robot.mouseMove (point.getX (), point.getY ()): यह माउस पॉइंटर को निर्दिष्ट X और Y निर्देशांक में ले जाएगा।
- KeyRelease (): उदाहरण: Robot.keyRelease (KeyEvent.VK_DOWN): कीबोर्ड की एरो डाउन कुंजी के साथ यह विधि
- mouseRelease (): उदाहरण: robot.mouseRelease (InputEvent.BUTTON3_DOWN_MASK): यह विधि आपके माउस के राइट क्लिक को रिलीज़ करेगी
रोबोट क्लास का उपयोग करके सामान्य उपयोग के मामलों को स्वचालित करने के लिए नमूना कोड
- वेब साइट http://spreadsheetpage.com/index.php/file/C35/P10/ का उदाहरण दें, जिसके बाद आप वेब तत्व पर क्लिक करते हैं ( .//a@@ref=contains(text(),'earearly- Calendar.xls '] ) एक OS डाउनलोड पॉप-अप दिखाई देता है।
- इसे संभालने के लिए हम रोबोट क्लास का उपयोग करते हैं (अपने कोड में रोबोट क्लास का एक उदाहरण बनाकर कहते हैं रोबोट रोबोट = नया रोबोट () )। रोबोट वर्ग हमें JDK के AWT पैकेज में मौजूद है।
- कीबोर्ड की डाउन ऐरो कुंजी प्रेस करने के लिए हम का उपयोग करें ( robot.keyPress (KeyEvent.VK_DOWN))
- कीबोर्ड की TAB कुंजी दबाने के लिए (हम robot.keyPress (KeyEvent.VK_TAB) का उपयोग करते हैं )
- Enter कुंजी दबाने के लिए हम उपयोग करते हैं ( robot.keyPress (KeyEvent.VK_ENTER))।
यहाँ एक नमूना कोड है
आयात java.awt.AWTException;आयात java.awt.Robot;आयात java.awt.event.KeyEvent;आयात org.openqa.selenium.By;आयात org.openqa.selenium.WebDriver;आयात org.openqa.selenium.firefox.FirefoxDriver;कक्षा Excercise1 {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) AWTException, InterruptedException {फेंकता हैWebDriver ड्राइवर = नया FirefoxDriver ();Driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // नमूना urlDriver.findElement (By.xpath (".// एक [@ href = सम्मिलित (पाठ) (, 'वार्षिक- Calendar.xls')]"); क्लिक करें ()रोबोट रोबोट = नया रोबोट (); // रोबोट क्लास AWT एक्सेप्शन फेंकता हैथ्रेड.स्लीप (2000); // थ्रेड.स्लीप थॉट इंटरप्टेड एक्ससेप्शनrobot.keyPress (KeyEvent.VK_DOWN); // नेविगेट करने के लिए कीबोर्ड की कुंजी दबाएं और रेडियो बटन सहेजें चुनेंथ्रेड.स्लीप (2000); // नींद का उपयोग केवल प्रत्येक घटना को अलग-अलग दिखाने के लिए किया गया हैrobot.keyPress (KeyEvent.VK_TAB);थ्रेड.स्लीप (2000);robot.keyPress (KeyEvent.VK_TAB);थ्रेड.स्लीप (2000);robot.keyPress (KeyEvent.VK_TAB);थ्रेड.स्लीप (2000);robot.keyPress (KeyEvent.VK_ENTER);// चयनित कार्रवाई के ऊपर प्रदर्शन करने के लिए कीबोर्ड की कुंजी दर्ज करें}}
कार्रवाई में यह देखने के लिए इस वीडियो को देखें
TestNG का उपयोग करके रोबोट क्लास कोड को कैसे निष्पादित करें
चूंकि, अब आप रोबोट क्लास के बुनियादी तरीकों से अवगत हैं, तो आइए कुछ और जटिल तरीकों को समझते हैं -
मान लीजिए आप वेब तत्व पर क्लिक करने के लिए क्लिक विधि का उपयोग नहीं करना चाहते हैं ।
ऐसे मामलों में, आप रोबोट वर्ग के माउसमूव विधि का उपयोग कर सकते हैं।
चरण 1) माउसमूव विधि एक्स और वाई निर्देशांक लेती है जैसे कि रोबोट.mouseMove (630, 420) जैसे पैरामीटर जहां x- अक्ष इंगित करता है और 420 y- अक्ष इंगित करता है। तो, यह विधि आपके माउस पॉइंटर को वर्तमान स्थान से उल्लेखित x और y प्रतिच्छेदन बिंदु तक ले जाएगी।
चरण 2) अगला, हमें माउस बटन दबाने की आवश्यकता है। हम विधि का उपयोग कर सकते हैं mousePress तरह robot.mousePress (InputEvent.BUTTON1_DOWN_MASK) ।
चरण 3) प्रेस के बाद, माउस को जारी करने की आवश्यकता है। माउस के बाएँ क्लिक को छोड़ने के लिए हम robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK ) का उपयोग कर सकते हैं ।
TestNG का उपयोग करके कोड चलाना:
Testng का उपयोग करके रनिंग कोड के लिए TestNG या रेफर की गई लाइब्रेरी की TestNG जार फ़ाइल की निर्भरता की आवश्यकता होती है।
TestNG मावेन निर्भरता:
<निर्भरता>org.testng groupId><विरूपण साक्ष्य> परीक्षण करें विरूपण साक्ष्य><संस्करण> 6.1.1 संस्करण> निर्भरता>
मावेन निर्भरता या जार फ़ाइल जोड़ने के बाद। आपको TestNG का टेस्ट एनोटेशन आयात करने की आवश्यकता है। एक बार यह सब हो जाने के बाद, प्रोग्राम कोड पर राइट क्लिक करें और रन अस पर क्लिक करें और फिर टेस्टएनजी पर क्लिक करें
… और आपको पता चलेगा कि कोड testNG API का उपयोग करके इसका निष्पादन शुरू कर देगा।यहाँ कोड है
आयात java.awt.AWTException;आयात java.awt.Robot;आयात java.awt.event.InputEvent;आयात java.awt.event.KeyEvent;आयात org.openqa.selenium.WebDriver;आयात org.openqa.selenium.firefox.FirefoxDriver;आयात org.testng.annotations.Test;सार्वजनिक वर्ग@परीक्षासार्वजनिक स्थैतिक शून्य निष्पादन () इंटरप्टेड अपवाद, AWTException {फेंकता हैWebDriver ड्राइवर = नया FirefoxDriver ();Driver.manage ()। window ()। मैक्सिमम ();Driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // नमूना urlरोबोट रोबोट = नया रोबोट ();Robot.mouseMove (630, 420); // मूव पॉइंट को विशिष्ट स्थान पर ले जाएंrobot.delay (1500); // देरी अगले चरण को निष्पादित करने से पहले उल्लेखित मिलीसेकंड के लिए कोड प्रतीक्षा करने के लिए हैrobot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // प्रेस बायाँ-क्लिक करेंrobot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // रिलीज पर क्लिक करें छोड़ दियाrobot.delay (1500);robot.keyPress (KeyEvent.VK_DOWN); // सहेजें रेडियो बटन का चयन करने के लिए कीबोर्ड तीर कुंजीथ्रेड.स्लीप (2000);robot.keyPress (KeyEvent.VK_ENTER);// चयनित कार्रवाई के ऊपर प्रदर्शन करने के लिए कीबोर्ड की कुंजी दर्ज करें}}
कार्रवाई में यह देखने के लिए इस वीडियो को देखें
रोबोट क्लास के नुकसान
रोबोट framwork के नीचे कुछ नुकसान हैं:
- कीवर्ड / माउस ईवेंट केवल विंडो की वर्तमान आवृत्ति पर काम करेगा। उदाहरण के लिए, एक कोड किसी भी रोबोट वर्ग घटना का प्रदर्शन कर रहा है, और कोड निष्पादन के दौरान उपयोगकर्ता किसी अन्य स्क्रीन पर चला गया है तो उस स्क्रीन पर कीवर्ड / माउस घटना घटित होगी।
- माउसवू जैसे अधिकांश तरीके स्क्रीन रिज़ॉल्यूशन पर निर्भर हैं, इसलिए एक मौका हो सकता है कि एक मशीन पर काम करने वाला कोड दूसरे पर काम न करे।
सारांश
AWT पैकेज में रोबोट क्लास का उपयोग OS विंडो और देशी ऐप्स के साथ बातचीत करने के लिए कीबोर्ड / माउस इवेंट उत्पन्न करने के लिए किया जाता है।
रोबोट का प्राथमिक उद्देश्य जावा प्लेटफॉर्म में सेलेनियम स्वचालित परीक्षण परियोजना के निर्माण का समर्थन करना है
इस लेख में रमनदीप सिंह का योगदान है, जो एक प्रमुख एमएनसी में टेस्ट ऑटोमेशन इंजीनियर हैं।