एक्शन क्लास में Selenium
इस ट्यूटोरियल में, हम कीबोर्ड और माउस इवेंट को संभालना सीखेंगे। Selenium वेबड्राइवर
एक्शन क्लास में Selenium
एक्शन क्लास में Selenium कीबोर्ड और माउस इवेंट को संभालने के लिए सेलेनियम द्वारा प्रदान की गई एक अंतर्निहित सुविधा है। इसमें कई ऑपरेशन शामिल हैं जैसे कि कंट्रोल कुंजी द्वारा कई इवेंट क्लिक करना, ड्रैग और ड्रॉप इवेंट और बहुत कुछ। एक्शन क्लास से ये ऑपरेशन एडवांस्ड यूजर इंटरेक्शन एपीआई का उपयोग करके किए जाते हैं Selenium वेबड्राइवर.
कीबोर्ड और माउस इवेंट को संभालना
विशेष कीबोर्ड और माउस इवेंट को हैंडल करने के लिए इसका उपयोग किया जाता है उन्नत उपयोगकर्ता इंटरैक्शन API। इसमें शामिल है क्रियाएँ और कार्य इन इवेंट को निष्पादित करते समय जिन क्लासों की आवश्यकता होती है। निम्नलिखित Actions क्लास द्वारा प्रदान किए जाने वाले सबसे अधिक उपयोग किए जाने वाले कीबोर्ड और माउस इवेंट हैं।
विधि | विवरण |
---|---|
दबाएं और पकड़े रहें() | वर्तमान माउस स्थान पर क्लिक (बिना छोड़े)। |
संदर्भक्लिक() | वर्तमान माउस स्थान पर संदर्भ-क्लिक निष्पादित करता है। (राइट क्लिक माउस क्रिया) |
डबल क्लिक करें() | वर्तमान माउस स्थान पर डबल-क्लिक करता है। |
dragAndDrop(स्रोत, लक्ष्य) | स्रोत तत्व के स्थान पर क्लिक-एंड-होल्ड करता है, लक्ष्य तत्व के स्थान पर जाता है, फिर माउस को छोड़ देता है।
पैरामीटर: स्रोत-तत्व अनुकरण करने के लिए बटन नीचे. लक्ष्य - वह तत्व जिस पर जाना है और जिस पर माउस छोड़ना है। |
dragAndDropBy(स्रोत, x-ऑफ़सेट, y-ऑफ़सेट) | स्रोत तत्व के स्थान पर क्लिक-एंड-होल्ड करता है, दिए गए ऑफसेट से आगे बढ़ता है, फिर माउस को छोड़ देता है।
पैरामीटर्स: स्रोत-तत्व अनुकरण करने के लिए बटन नीचे. xOffset- क्षैतिज चाल ऑफसेट. yOffset- ऊर्ध्वाधर चाल ऑफसेट. |
keyDown(संशोधक_कुंजी) | संशोधक कुंजी दबाता है। संशोधक कुंजी को जारी नहीं करता - बाद की बातचीत यह मान सकती है कि इसे दबाए रखा गया है।
पैरामीटर्स: संशोधक_कुंजी - कोई भी संशोधक कुंजी (Keys.ALT, Keys.SHIFT, या Keys.CONTROL) |
keyUp(संशोधक _key) | कुंजी रिलीज़ करता है.
पैरामीटर्स: संशोधक_कुंजी - कोई भी संशोधक कुंजी (Keys.ALT, Keys.SHIFT, या Keys.CONTROL) |
moveByOffset(x-ऑफ़सेट, y-ऑफ़सेट) | माउस को उसकी वर्तमान स्थिति (या 0,0) से दिए गए ऑफसेट द्वारा स्थानांतरित करता है।
पैरामीटर्स: x-ऑफ़सेट- क्षैतिज ऑफ़सेट। ऋणात्मक मान का अर्थ है माउस को बाईं ओर ले जाना। y-ऑफ़सेट- वर्टिकल ऑफ़सेट। ऋणात्मक मान का अर्थ है माउस को नीचे ले जाना। |
moveToElement(टूएलिमेंट) | माउस को तत्व के मध्य में ले जाता है।
पैरामीटर्स: toElement- जिस तत्व पर जाना है। |
मुक्त करना() | वर्तमान माउस स्थान पर दबा हुआ बायाँ माउस बटन रिलीज़ करता है |
sendKeys(onElement, वर्ण अनुक्रम) | तत्व पर कुंजीस्ट्रोक्स की एक श्रृंखला भेजता है।
पैरामीटर्स: onElement – वह तत्व जो कीस्ट्रोक्स प्राप्त करेगा, आमतौर पर एक टेक्स्ट फ़ील्ड charsequence - भेजे जाने वाले कीस्ट्रोक्स के अनुक्रम को दर्शाने वाला कोई भी स्ट्रिंग मान |
निम्नलिखित उदाहरण में, हम एक पर माउस-ओवर करने के लिए moveToElement() विधि का उपयोग करेंगे Mercury टूर्स की टेबल पंक्तियाँ। नीचे दिया गया उदाहरण देखें।
ऊपर दिखाया गया सेल एक भाग है तत्व। यदि होवर नहीं किया गया है, तो इसका रंग #FFC455 (नारंगी) है। होवर करने के बाद, सेल का रंग पारदर्शी हो जाता है। यह पूरी नारंगी तालिका की नीली पृष्ठभूमि के समान रंग का हो जाता है।
चरण 1) आयात करें क्रियाएँ और कार्य कक्षाएं।
चरण 2) एक नया एक्शन ऑब्जेक्ट इन्स्टेन्सिएट करें.
चरण 3) चरण 2 में Actions ऑब्जेक्ट का उपयोग करके एक Action को इन्स्टेन्सिएट करें।
इस मामले में, हम moveToElement() विधि का उपयोग करने जा रहे हैं क्योंकि हम बस “होम” लिंक पर माउस ले जाने वाले हैं। build() विधि हमेशा अंतिम विधि होती है ताकि सभी सूचीबद्ध क्रियाएँ एक ही चरण में संकलित हो जाएँ।
चरण 4) चरण 3 में डिज़ाइन किए गए एक्शन ऑब्जेक्ट को निष्पादित करते समय perform() विधि का उपयोग करें।
नीचे पृष्ठभूमि रंग की जांच करने के लिए संपूर्ण वेबड्राइवर कोड है माउस-ओवर से पहले और बाद में तत्व।
package newproject; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.interactions.Action; import org.openqa.selenium.interactions.Actions; public class PG7 { public static void main(String[] args) { String baseUrl = "https://demo.guru99.com/test/newtours/"; System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe"); WebDriver driver = new FirefoxDriver(); driver.get(baseUrl); WebElement link_Home = driver.findElement(By.linkText("Home")); WebElement td_Home = driver .findElement(By .xpath("//html/body/div" + "/table/tbody/tr/td" + "/table/tbody/tr/td" + "/table/tbody/tr/td" + "/table/tbody/tr")); Actions builder = new Actions(driver); Action mouseOverHome = builder .moveToElement(link_Home) .build(); String bgColor = td_Home.getCssValue("background-color"); System.out.println("Before hover: " + bgColor); mouseOverHome.perform(); bgColor = td_Home.getCssValue("background-color"); System.out.println("After hover: " + bgColor); driver.close(); } }
नीचे दिया गया आउटपुट स्पष्ट रूप से बताता है कि माउस-ओवर के बाद पृष्ठभूमि का रंग पारदर्शी हो गया।
अनेक कार्यों की श्रृंखला का निर्माण
आप Action और Actions क्लासों का उपयोग करके क्रियाओं की एक श्रृंखला बना सकते हैंबस build() विधि के साथ श्रृंखला को बंद करना याद रखें। नीचे दिए गए नमूना कोड पर विचार करें।
public static void main(String[] args) { String baseUrl = "http://www.facebook.com/"; WebDriver driver = new FirefoxDriver(); driver.get(baseUrl); WebElement txtUsername = driver.findElement(By.id("email")); Actions builder = new Actions(driver); Action seriesOfActions = builder .moveToElement(txtUsername) .click() .keyDown(txtUsername, Keys.SHIFT) .sendKeys(txtUsername, "hello") .keyUp(txtUsername, Keys.SHIFT) .doubleClick(txtUsername) .contextClick() .build(); seriesOfActions.perform() ; }
सारांश
- विशेष कीबोर्ड और माउस इवेंट्स का प्रबंधन AdvancedUserInteractions API का उपयोग करके किया जाता है।
- अक्सर उपयोग किए जाने वाले कीवर्ड और माउस इवेंट हैं doubleClick(), keyUp, dragAndDropBy, contextClick और sendKeys.