सेलेनियम में क्रिटिकल एक्शन क्लास-अब्सोल्यूट 2021 गाइड

हम विभिन्न वेब परिचालनों में सेलेनियम में क्रियाएँ वर्ग के संपूर्ण उपयोग पर चर्चा और सीखने जा रहे हैं। सेलेनियम में एक्ट्स क्लास व्यापक रूप से माउस और कीबोर्ड आंदोलन जैसे विभिन्न वेब संचालन करने के लिए उपयोग किया जाता है जो अग्रिम वेबब्रोसर क्रियाएं हैं।

माउस कार्रवाई

कीबोर्ड क्रिया

सेलेनियम में क्रियाएँ वर्ग

सेलेनियम में क्रियाएँ वर्ग क्या है: 

सेलेनियम में क्रियाएँ वर्ग
सेलेनियम में क्रियाएँ वर्ग

एक्शन क्लास पैकेज से सेलेनियम बंडल एपी से एक वर्ग है org.openqa.selenium.interactions ब्राउज़र स्वचालन के माध्यम से उपयोगकर्ताओं के साथ महत्वपूर्ण और अग्रिम वेब इंटरैक्शन को संभालने के लिए। उपर्युक्त विभिन्न विधियों के माध्यम से विभिन्न माउस और कीबोर्ड क्रिया करने के लिए उपयोगकर्ताओं को एक हैंडल प्रदान करता है।  

सेलेनियम में क्रियाएँ वर्ग
सेलेनियम में क्रियाएँ वर्ग

हम यहां सेलेनियम में क्रियाएँ वर्ग के माध्यम से सभी वेब इंटरैक्शन के बारे में चर्चा करेंगे, जिससे हम माउस इंटरैक्शन सीखते हैं और सेलेनियम में एक्शन क्लास के साथ की-बोर्ड इंटरैक्शन की ओर बढ़ते हैं।

माउस इंटरैक्शन - सेलेनियम में क्रियाएं कक्षा

सेलेनियम में खींचें और छोड़ें

सेलेनियम में ड्रैग एंड ड्रॉप सेलेनियम में एक्शन क्लास के साथ तीन अलग-अलग तरीकों से किया जा सकता है: 

सेल विधि में सेलेनियम में एक्शन क्लास के साथ खींचें और ड्रॉप बिल्ड विधि: 

हमें सेलेनियम में सोर्स वेबएलीमेंट (जिसे ड्रैग किया जाना है) और डेस्टिनेशन वेबलीमेंट (जहां सोर्स वेबलीमेंट को छोड़ दिया जाना है, यानी डेस्टिनेशन वेबलीमेंट) जैसे ड्रैग एंड ड्रॉप को परफॉर्म करने के लिए दो वीलबल्स की जरूरत होती है। नीचे का तरीका एक कस्टमाइज्ड तरीका है ( जो आप अपने फ्रेमवर्क WebUtils को बनाने के लिए उपयोग कर सकते हैं) जो सेलेनियम में ड्रैग एंड ड्रॉप का प्रदर्शन करते हैं और यह विधि दो तर्क लेती है एक है सोर्स वेबएमेंट, और दूसरा है डेस्टिनेशन वेबइमेंट जैसा कि पहले उल्लेख किया गया है: 

सार्वजनिक शून्य ड्रैग एंडड्रॉप (स्रोत द्वारा, गंतव्य द्वारा) {कोशिश करें {वेबएलिमेंट स्रोत एलिमेंट = ड्राइवर.फाइंड एलिमेंट (स्रोत); वेबएलिमेंट डेस्टिनेशन एलिमेंट = ड्राइवर।फाइंड एलिमेंट (गंतव्य); क्रियाएँ निर्माता = नई क्रियाएँ (चालक); एक्शन ड्रैग एंडड्रॉप = बिल्डर। क्लिक एंडहोल्ड (सोर्स एलिमेंट)। मूव टॉइलेमेंट (डेस्टिनेशन एलिमेंट) .रिलीज (डेस्टिनेशन एलिमेंट)। बिल्ड (); ड्रैगएंडड्रॉप.परफॉर्म (); BASE_LOGGER.info ("ड्रैग एंड ड्रॉप कार्रवाई सफलतापूर्वक की गई"); } पकड़ (अपवाद ई) {स्ट्रिंग अपवादडेटा = e.getCause ()। getMessage (); BASE_LOGGER.error ("त्रुटि का सामना करना पड़ा यानी:" + अपवादडेटा + "ड्रैगएंडड्रॉप करते समय"); } }

ड्रैग एंड ड्रॉप के बारे में पूरी अवधारणा जानने के लिए और सेलेनियम में ड्रैग एंड ड्रॉप करने के लिए सभी दृष्टिकोणों पर जाएं, यहां क्लिक करें।

सेलेनियम में ClickAndHold 

ClickAndHold, सेलेनियम में ऐक्शन क्लास (org.openqa.selenium.interactions पैकेज से) का एक और महत्वपूर्ण तरीका है
पहले किसी भी WebElement पर बाएं क्लिक ऑपरेशन करें और माउस को छोड़े बिना इसे पकड़ें।

ड्रैग और ड्रॉप परिदृश्यों का प्रदर्शन करते समय इस विधि का प्रमुख रूप से उपयोग किया जाता है, नीचे नमूना कोड छवि है: 

सेलेनियम में क्रियाएँ वर्ग
सेलेनियम में क्लिक करें और क्लिक करें

सेलेनियम में MoveToElement

MoveToElement, सेलेनिअम में ऐक्शन क्लास से दूसरे WebElement (डेस्टिनेशन वेब्लीमेंट) के लिए मूवमेंट करने के लिए एक विधि है, जिसे यह विधि एक संबंधित तर्क के रूप में लेती है।

ड्रैग और ड्रॉप परिदृश्यों का प्रदर्शन करते समय इस विधि का प्रमुख रूप से उपयोग किया जाता है, नीचे नमूना कोड छवि है: 

MoveToElement
तत्व में जाएं - सेलेनियम में क्रियाएँ वर्ग

सेलेनियम में डबल क्लिक करें

माउस के माध्यम से डबल क्लिक ऑपरेशन को दोहराने के लिए हमें सेलेनियम में क्रियाएँ वर्ग के माध्यम से डबल क्लिक करने की आवश्यकता है और हम इसे नीचे दिए गए कार्यों में कर सकते हैं: 

सार्वजनिक शून्य डबलक्लिक (लोकेटर द्वारा) {कोशिश करें {वेबएलिमेंट एलिमेंट = ड्राइवर.फाइंड एलिमेंट (लोकेटर); क्रियाएँ क्रियाएँ = नई क्रियाएँ (चालक); क्रियाएँ। डबलक्लिक (तत्व)। प्रदर्शन (); BASE_LOGGER.info ("तत्व पर डबल क्लिक किया गया:" + लोकेटर); } पकड़ें (StaleElementReferenceException e) { BASE_LOGGER.error ("तत्व पृष्ठ दस्तावेज़ से संलग्न नहीं है" + e.getCause ()। getMessage ()); } पकड़ें (NoSuchElementException e) { BASE_LOGGER.error("Element" + locator + "DOM में नहीं मिला" + e.getCause().getMessage()); } पकड़ (अपवाद ई) { BASE_LOGGER.error("Element" + locator + "क्लिक करने योग्य नहीं था" + e.getCause().getMessage()); } }

उपरोक्त कोड स्निपेट एक ऐसी विधि है जो मूल रूप से लोकेटर के रूप में एक तर्क लेती है, यानी वेबइमेन्ट जिस पर डबल क्लिक करना होता है। 

संदर्भ क्लिक या सेलेनियम राइट क्लिक

माउस के माध्यम से संदर्भ क्लिक या राइट क्लिक ऑपरेशन को दोहराने के लिए हमें सेलेनियम में क्रियाएँ वर्ग के माध्यम से संदर्भ क्लिक विधि करने की आवश्यकता है और हम इसे नीचे दिए गए दृष्टिकोण में कर सकते हैं: 

सार्वजनिक शून्य राइटक्लिक (लोकेटर द्वारा) {कोशिश करें {वेबएलिमेंट एलिमेंट = ड्राइवर। फाइंड एलीमेंट (लोकेटर); क्रियाएँ क्रियाएँ = नई क्रियाएँ (चालक); क्रियाएँ। संदर्भ क्लिक (तत्व)। प्रदर्शन (); BASE_LOGGER.info ("संदर्भ प्रदर्शन किया तत्व पर क्लिक करें:" + लोकेटर); } पकड़ें (StaleElementReferenceException e) { BASE_LOGGER.error ("तत्व पृष्ठ दस्तावेज़ से संलग्न नहीं है" + e.getCause ()। getMessage ()); } पकड़ें (NoSuchElementException e) { BASE_LOGGER.error("Element" + locator + "DOM में नहीं मिला" + e.getCause().getMessage()); } पकड़ (अपवाद ई) { BASE_LOGGER.error("Element" + locator + "क्लिक करने योग्य नहीं था" + e.getCause().getMessage()); } }

उपरोक्त कोड स्निपेट एक ऐसी विधि है जो मूल रूप से लोकेटर के रूप में एक तर्क लेती है, यानी वेबइमेन्ट जिस पर डबल क्लिक करना होता है। 

सेलेनियम में रुकें 

जब भी हम अलग-अलग क्रियाओं के बीच किसी भी समय देरी का परिचय देना चाहते हैं, तो हम क्रिया संचालन के बीच में विराम विधि का उपयोग कर सकते हैं, जैसे मान लें कि हम ड्रैग और ड्रॉप ऑपरेशन के बीच कुछ सेकंड की देरी चाहते हैं, तो हम ठहराव कह सकते हैं ( ) नीचे दृष्टिकोण में सेलेनियम में क्रियाएँ वर्ग की विधि: 

सार्वजनिक शून्य विराम के बीच क्रियाएँ (स्रोत द्वारा, गंतव्य द्वारा, int timeUnit) {कोशिश करें {WebElement sourceElement = Driver.findElement (स्रोत); वेबएलिमेंट डेस्टिनेशन एलिमेंट = ड्राइवर।फाइंड एलिमेंट (गंतव्य); क्रियाएँ निर्माता = नई क्रियाएँ (चालक); Builder.clickAndHold(sourceElement).moveToElement(destinationElement).pause(timeUnit).release(destinationElement).build().perform(); BASE_LOGGER.info ("ड्रैग एंड ड्रॉप एक्शन सफलतापूर्वक किया गया"); } पकड़ (अपवाद ई) {स्ट्रिंग अपवादडेटा = e.getCause ()। getMessage (); BASE_LOGGER.error ("त्रुटि का सामना करना पड़ा यानी:" + अपवादडेटा + "ड्रैगएंडड्रॉप करते समय"); } }

उपरोक्त विधि में इसे तीन तर्क लगते हैं: एक स्रोत WebElement, एक अन्य तर्क गंतव्य तत्व है, और अंतिम एक समय के लिए है, यानी सेलेनियम में हम ठहराव () का उपयोग करना चाहते हैं।

सेलेनियम में माउस होवर

सेलेनियम ऑपरेशन में माउस होवर, सेलेनियम में क्रियाओं के वर्ग का उपयोग करके प्राप्त किया जा सकता है, मूल रूप से, एक बार जब हम किसी वेबइमेन्ट के साथ ध्यान केंद्रित करते हैं और वहां से, हम इस माउस होवर ऑपरेशन द्वारा आपके माउस कर्सर को किसी अन्य तत्व पर मंडराते हैं, और यह वेबइलमेंट जहाँ हम अपना माउस कर्सर ले जाना चाहते हैं जिसे टारगेट वेबलीमेंट कहा जाता है। 

नीचे उसी के लिए कोड स्निपेट दिया गया है: 

सार्वजनिक शून्य माउसहोवर (लक्षित लोकेटर द्वारा) {कोशिश करें {वेबइलेमेंट लक्षित एलिमेंट = ड्राइवर। खोज एलिमेंट (लक्षित लोकेटर); क्रियाएँ निर्माता = नई क्रियाएँ (चालक); Builder.moveToElement(targetedElement).build().perform(); BASE_LOGGER.info ("सेलेनियम क्रिया में माउस होवर सफलतापूर्वक निष्पादित किया गया"); } पकड़ (अपवाद ई) {स्ट्रिंग अपवादडेटा = e.getCause ()। getMessage (); BASE_LOGGER.error ("सेलेनियम में माउस होवर करते समय त्रुटि हुई:" + अपवादडेटा + "); } }

सभी के बारे में जानने के लिए सेलेनियम वेबड्राइवर कमांड आप यहां देख सकते हैं .

कीबोर्ड क्रियाएं - सेलेनियम में क्रियाएं कक्षा

कीबोर्ड क्रिया क्या है और इसकी आवश्यकता कहां है:

कीबोर्ड क्रियाओं का मतलब है कि जहां संचालन सीधे एक कीबोर्ड से किया जाता है जैसे कि हम यह कहते हैं कि हम Contrl + A को एक साथ या Control + C को एक साथ करने की कोशिश कर रहे हैं या कीबोर्ड से की-अप या Keydown बटन को WebElements के साथ इंटरैक्ट करते समय प्रदर्शन कर रहे हैं।

हम सेलेनियम में एक्शन क्लास की मदद से कई कीबोर्ड इंटरैक्शन कर सकते हैं

सेलेनियम में sendKeys :

हम नीचे दिए गए तरीके से सेलेनियम में एक्शन क्लास की मदद से सेंक ऑपरेशन कर सकते हैं:

सार्वजनिक शून्य सेंडकेविथएक्शन क्लास (लोकेटर द्वारा) {कोशिश करें {वेबएलिमेंट एलिमेंट = ड्राइवर.फाइंड एलिमेंट (लोकेटर); क्रियाएँ क्रियाएँ = नई क्रियाएँ (चालक); क्रियाएँ.sendKeys ("कीबोर्ड डेटा प्रविष्टि"); // नियंत्रण और सी को एक साथ दबाने के बाद कीबोर्ड क्रियाएं करें। भेजेंकी (कुंजी। नियंत्रण); क्रियाएँ.sendKeys ("सी"); क्रियाएँ। निर्माण ()। प्रदर्शन (); } पकड़ (अपवाद ई) {स्ट्रिंग अपवादडेटा = e.getCause ()। getMessage (); } }

सेलेनियम में कीप :

इसी प्रकार हम सेलेनियम में एक्शन क्लास के साथ KeyUp संचालन नीचे तरीके से कर सकते हैं:

    सार्वजनिक शून्य keyUpWithActionClass (लोकेटर द्वारा) {कोशिश करें {WebElement तत्व = ड्राइवर। ढूँढें एलिमेंट (लोकेटर); क्रियाएँ क्रियाएँ = नई क्रियाएँ (चालक); क्रियाएँ.sendKeys ("कीबोर्ड डेटा प्रविष्टि"); // कुंजीपटल क्रियाओं को पूर्व दबाने वाले नियंत्रण और सी को की-अप क्रियाओं के साथ करें। कीप (कुंजी। नियंत्रण); क्रियाएँ.sendKeys ("सी"); क्रियाएँ। निर्माण ()। प्रदर्शन (); } पकड़ (अपवाद ई) {स्ट्रिंग अपवादडेटा = e.getCause ()। getMessage (); } }

सेलेनियम में कीडाउन

हम नीचे दिए गए दृष्टिकोण में सेलेनियम में फिर से एक्शन क्लास की मदद से कीडाउन ऑपरेशन कर सकते हैं:

सार्वजनिक शून्य कुंजीडाउनविथएक्शन क्लास (लोकेटर द्वारा) {कोशिश करें {वेबएलिमेंट एलिमेंट = ड्राइवर.फाइंड एलिमेंट (लोकेटर); क्रियाएँ क्रियाएँ = नई क्रियाएँ (चालक); क्रियाएँ.sendKeys ("कीबोर्ड डेटा प्रविष्टि"); // कुंजीडाउन क्रियाओं के साथ नियंत्रण और वी दबाकर कीबोर्ड क्रियाएं करें। कीडाउन (कुंजी। नियंत्रण); क्रियाएँ.sendKeys ("वी"); क्रियाएँ। निर्माण ()। प्रदर्शन (); } पकड़ (अपवाद ई) {स्ट्रिंग अपवादडेटा = e.getCause ()। getMessage (); } }

निष्कर्ष: इनके साथ हम यहाँ क्रिया वर्ग के साथ कर रहे हैं सेलेनियम में, आगामी ट्यूटोरियल में JavascriptExecutor सेलेनियम में मॉड्यूलर अभी तक संपूर्ण तरीके से। सीखना अत्यधिक सेलेनियम कमांड आप यहां तैयारी के लिए भी संदर्भित कर सकते हैं महत्वपूर्ण सेलेनियम साक्षात्कार प्रश्न आप यहाँ उल्लेख कर सकते हैं।

एक टिप्पणी छोड़ दो