इस ट्यूटोरियल में, हम सेलेनियम वेबड्राइवर में कीबोर्ड और माउस इवेंट को हैंडल करना सीखेंगे
सेलेनियम में एक्शन क्लास
सेलेनियम में एक्शन क्लास एक अंतर्निहित सुविधा है जो कीबोर्ड और माउस घटनाओं को संभालने के लिए सेलेनियम द्वारा प्रदान की जाती है। इसमें कई ऑपरेशन शामिल हैं जैसे कि नियंत्रण कुंजी, क्लिक और ड्रॉप ईवेंट और कई और अधिक घटनाओं पर क्लिक करना। एक्शन क्लास के ये ऑपरेशन सेलेनियम वेबड्राइवर में उन्नत उपयोगकर्ता इंटरैक्शन एपीआई का उपयोग करके किए जाते हैं।
कीबोर्ड और माउस ईवेंट्स को हैंडल करना
विशेष कीबोर्ड और माउस ईवेंट्स को हैंडल करना उन्नत उपयोगकर्ता इंटरैक्शन एपीआई का उपयोग करके किया जाता है । इसमें क्रिया और कार्रवाई वर्गों है कि जब इन घटनाओं को क्रियान्वित करने की जरूरत है। निम्नलिखित सबसे अधिक उपयोग किए जाने वाले कीबोर्ड और माउस इवेंट हैं जो एक्शन क्लास द्वारा दिए गए हैं।
तरीका | विवरण |
---|---|
दबाएं और पकड़े रहें() | वर्तमान माउस स्थान पर क्लिक (जारी किए बिना)। |
संदर्भक्लिक करें () | वर्तमान माउस स्थान पर एक संदर्भ-क्लिक करता है। (राइट क्लिक माउस एक्शन) |
डबल क्लिक करें() | वर्तमान माउस स्थान पर एक डबल-क्लिक करता है। |
DragAndDrop (स्रोत, लक्ष्य) | स्रोत तत्व के स्थान पर क्लिक-एंड-होल्ड करता है, लक्ष्य तत्व के स्थान पर जाता है, फिर माउस को छोड़ता है। पैरामीटर्स: स्रोत- एलिमेंट टू बट डाउन एट डाउनटार्ग- एलिमेंट टू मूव टू एंड माउस रिलीज़ एट। |
DragAndDropBy (स्रोत, x- ऑफसेट, y- ऑफसेट) | स्रोत तत्व के स्थान पर क्लिक-एंड-होल्ड करता है, किसी दिए गए ऑफसेट द्वारा चलता है, फिर माउस को छोड़ता है। पैरामीटर्स : स्रोत- एलिमेंट डाउन टू बटन डाउन एट एएक्स ओफ़्सेट- हॉरिजॉन्टल मूव ऑफसेट.वाईऑफसेट- वर्टिकल मूव ऑफसेट। |
कीडाउन (संशोधक_की) | एक संशोधक कुंजी दबाता है। संशोधक कुंजी को जारी नहीं करता है - बाद के इंटरैक्शन मान सकते हैं कि इसे दबाकर रखा गया है। पैरामीटर : modifier_key - संशोधक कुंजियों में से कोई (Keys.ALT, Keys.SHIFT, या Keys.ContROL) |
कीप (संशोधक _key) | एक प्रमुख रिलीज करता है। पैरामीटर : modifier_key - संशोधक कुंजियों में से कोई (Keys.ALT, Keys.SHIFT, या Keys.ContROL) |
MoveByOffset (x- ऑफसेट, y- ऑफसेट) | दिए गए ऑफसेट द्वारा माउस को उसकी वर्तमान स्थिति (या 0,0) से ले जाता है। पैरामीटर : x- ऑफसेट- क्षैतिज ऑफसेट। ऋणात्मक मान का अर्थ है माउस को बाईं ओर ले जाना ।y- ऑफसेट- ऊर्ध्वाधर ऑफसेट। नकारात्मक मान का अर्थ है माउस को नीचे ले जाना। |
मूवमेंट | तत्व के मध्य में माउस ले जाता है। पैरामीटर : स्थानांतरित करने के लिए तत्व- तत्व। |
जारी () | वर्तमान माउस स्थान पर उदास बाएं माउस बटन को जारी करता है |
sendKeys (चालू, दान) | तत्व पर कीस्ट्रोक्स की एक श्रृंखला भेजता है। पैरामीटर : onElement - वह तत्व जो कीस्ट्रोक्स प्राप्त करेगा, आमतौर पर एक टेक्स्ट फील्डचार्जेंस - किस्ट्रोक्स के अनुक्रम का प्रतिनिधित्व करने वाला कोई भी स्ट्रिंग मान भेजा जाएगा |
निम्नलिखित उदाहरण में, हम मूव-ओवर (एक) पारा टूर्स की टेबल पंक्तियों पर माउस-मूव करने की विधि का उपयोग करेंगे। नीचे उदाहरण देखें।
ऊपर दिखाया गया सेल
चरण 1: आयात क्रियाएँ और कार्रवाई कक्षाएं।
चरण 2: एक नई क्रिया वस्तु को तुरंत।
चरण 3: चरण 2 में क्रिया ऑब्जेक्ट का उपयोग करके एक एक्शन को तुरंत रोकें।
इस मामले में, हम MoveToElement () विधि का उपयोग करने जा रहे हैं क्योंकि हम बस "होम" लिंक पर माउस से जा रहे हैं। बिल्ड () विधि हमेशा अंतिम विधि का उपयोग किया जाता है ताकि सभी सूचीबद्ध कार्यों को एक ही चरण में संकलित किया जा सके।
चरण 4: चरण 3 में हमारे द्वारा डिज़ाइन किए गए एक्शन ऑब्जेक्ट को निष्पादित करते समय प्रदर्शन () विधि का उपयोग करें।
नीचे माउस-ओवर से पहले और बाद में
पैकेज न्यूप्रोजेक्ट;आयात org.openqa.selenium। *;आयात org.openqa.selenium.firefox.FirefoxDriver;आयात org.openqa.selenium.interactions.Action;आयात org.openqa.selenium.interactions.Actions;पब्लिक क्लास PG7 {सार्वजनिक स्थैतिक शून्य main (String [] args) {स्ट्रिंग आधार = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");WebDriver ड्राइवर = नया FirefoxDriver ();Driver.get (baseUrl);WebElement link_Home = driver.findElement (By.linkText ("Home"));WebElement td_Home = ड्राइवर.findElement (द्वारा.xpath ("// html / शरीर / div"+ "/ टेबल / tbody / tr / td"+ "/ टेबल / tbody / tr / td"+ "/ टेबल / tbody / tr / td"+ "/ टेबल / tbody / tr");एक्शन बिल्डर = नए एक्शन (ड्राइवर);कार्रवाई माउसओवरहोम = बिल्डर.MoveToElement (लिंक_होम).build ();स्ट्रिंग bgColor = td_Home.getCssValue ("पृष्ठभूमि-रंग");System.out.println ("होवर से पहले: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("पृष्ठभूमि-रंग");System.out.println ("होवर के बाद: + bgColor);Driver.close ();}}
नीचे दिया गया आउटपुट स्पष्ट रूप से बताता है कि माउस-ओवर के बाद पृष्ठभूमि का रंग पारदर्शी हो गया।
एकाधिक क्रियाओं की एक श्रृंखला का निर्माण
आप एक्शन और एक्ट्स वर्गों का उपयोग करके कार्यों की एक श्रृंखला बना सकते हैं । बस बिल्ड () विधि के साथ श्रृंखला को बंद करने के लिए याद रखें। नीचे दिए गए नमूना कोड पर विचार करें।
सार्वजनिक स्थैतिक शून्य main (String [] args) {स्ट्रिंग बेसयूएल = "http://www.facebook.com/";WebDriver ड्राइवर = नया FirefoxDriver ();Driver.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("ईमेल"));एक्शन बिल्डर = नए एक्शन (ड्राइवर);कार्रवाई श्रृंखलाऑफअक्टेशन = बिल्डर.MoveToElement (txtUsername).click ().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, "हैलो").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).context क्लिक करें ().build ();seriesOfActions.perform ();}
सारांश
- विशेष कीबोर्ड और माउस ईवेंट्स को हैंडल करना एडवांस्डयूजरइंटरव्यू एपीआई का उपयोग करके किया जाता है।
- अक्सर उपयोग किए जाने वाले कीवर्ड और माउस इवेंट डबलक्लिक (), कीप, ड्रैगएंडप्रॉपबाय, संदर्भक्लिक और सेंडके होते हैं।