सेलेनियम अलर्ट & पॉपअप विंडो हैंडलिंग: हैंडल कैसे करें?

विषय - सूची:

Anonim

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

इस ट्यूटोरियल में, आप सीखेंगे-

  • क्या है अलर्ट?
  • सेलेनियम वेबड्राइवर में अलर्ट को कैसे संभालना है
  • वेबड्राइवर का उपयोग करके सेलेनियम पॉपअप विंडो को कैसे संभालना है

सेलेनियम में अलर्ट क्या है?

सेलेनियम में एक चेतावनी एक छोटा संदेश बॉक्स है जो उपयोगकर्ता को कुछ जानकारी या अधिसूचना देने के लिए स्क्रीन पर दिखाई देता है। यह कुछ विशिष्ट जानकारी या त्रुटि के साथ उपयोगकर्ता को सूचित करता है, कुछ कार्यों को करने की अनुमति मांगता है और यह चेतावनी संदेश भी प्रदान करता है।

यहां सेलेनियम प्रकारों में कुछ चेतावनी दी गई है:

1) सरल चेतावनी

सेलेनियम में सरल चेतावनी वर्ग स्क्रीन पर कुछ जानकारी या चेतावनी प्रदर्शित करता है।

2) शीघ्र चेतावनी।

यह प्रॉम्प्ट अलर्ट उपयोगकर्ता से कुछ इनपुट पूछता है और सेलेनियम वेबड्राइवर Sendkeys (फोन इनपुट) का उपयोग करके पाठ में प्रवेश कर सकता है

…। ”)।

3) पुष्टि चेतावनी।

यह पुष्टि चेतावनी कुछ प्रकार के ऑपरेशन करने की अनुमति मांगती है।

सेलेनियम वेबड्राइवर में अलर्ट को कैसे संभालना है

अलर्ट इंटरफ़ेस नीचे कुछ तरीके प्रदान करता है जो व्यापक रूप से सेलेनियम वेबड्राइवर में उपयोग किए जाते हैं।

1) शून्य खारिज () // चेतावनी के 'रद्द करें' बटन पर क्लिक करने के लिए।

Driver.switchTo ()। alert ()। खारिज करना ();

2) शून्य स्वीकार () // अलर्ट के 'ओके' बटन पर क्लिक करने के लिए।

Driver.switchTo ()। alert ()। Accept ();

3) स्ट्रिंग getText () // अलर्ट संदेश पर कब्जा करने के लिए।

Driver.switchTo ()। alert ()। getText (); 

4) शून्य sendKeys (स्ट्रिंग stringToSend) // कुछ डेटा को अलर्ट बॉक्स में भेजने के लिए।

Driver.switchTo ()। alert ()। SendKeys ("टेक्स्ट");

आप देख सकते हैं कि ग्रहण द्वारा सुझाए गए स्क्रीन में दिखाए गए अनुसार कई अलर्ट तरीके प्रदर्शित किए गए हैं।

हम आसानी से सेलेनियम की .switchTo () पद्धति का उपयोग करके मुख्य विंडो से अलर्ट पर जा सकते हैं ।

अब हम नीचे दिए गए परिदृश्य को स्वचालित करते हैं।

इस परिदृश्य में, हम सेलेनियम अलर्ट से निपटने के लिए गुरु 99 डेमो साइट का उपयोग करेंगे।

चरण 1) वेब ब्राउज़र लॉन्च करें और "http://demo.guru99.com/test/delete_customer.php" साइट खोलें

चरण 2) कोई भी ग्राहक आईडी दर्ज करें।

चरण 3) ग्राहक आईडी दर्ज करने के बाद, "सबमिट" बटन पर क्लिक करें।

चरण 4) अलर्ट को अस्वीकार / स्वीकार करें।

उपरोक्त परिदृश्य का उपयोग करते हुए सेलेनियम वेबड्राइवर में अलर्ट को संभालना

आयात org.openqa.selenium.By;आयात org.openqa.selenium.WebDriver;आयात org.openqa.selenium.chrome.ChromeDriver;आयात org.openqa.selenium.NoAlertPresentException;आयात org.openqa.selenium.Alert;सार्वजनिक वर्ग AlertDemo {सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] args) NoAlertPresentException, InterruptedException {फेंकता हैSystem.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver ड्राइवर = नया ChromeDriver ();// अलर्ट मैसेज हैंडलिंगDriver.get ("http://demo.guru99.com/test/delete_customer.php");Driver.findElement (By.name ("cusid"))। sendKeys ("53920");Driver.findElement (By.name ("सबमिट")) सबमिट करें ();// अलर्ट पर स्विच करनाअलर्ट अलर्ट = driver.switchTo ()। Alert ();// अलर्ट मैसेज कैप्चर करना।स्ट्रिंग चेतावनी// चेतावनी संदेश प्रदर्शित करनाSystem.out.println (alertMessage);थ्रेड.स्लीप (5000);// अलर्ट स्वीकार करनाalert.accept ();}}

आउटपुट:

जब आप उपरोक्त कोड निष्पादित करते हैं, तो यह साइट लॉन्च करता है। स्क्रीन पर प्रदर्शित होने वाले पुष्टिकरण अलर्ट को संभालने से ग्राहक आईडी को हटाने की कोशिश करें, और इस तरह ग्राहक आईडी को एप्लिकेशन से हटा दें।

वेबड्राइवर का उपयोग करके सेलेनियम पॉप-अप विंडो को कैसे संभालना है

स्वचालन में, जब हमारे पास किसी भी वेब एप्लिकेशन में कई विंडो होती हैं, तो ऑपरेशन को पूरा करने के लिए गतिविधि को एक से दूसरे तक कई खिड़कियों के बीच नियंत्रण स्विच करने की आवश्यकता हो सकती है। ऑपरेशन पूरा होने के बाद, इसे मुख्य विंडो यानी सेलेनियम में मूल विंडो पर वापस लौटना होगा। हम इस लेख में एक उदाहरण के साथ आगे देखेंगे।

सेलेनियम वेब ड्राइवर में ऐसे तरीके हैं जिनके माध्यम से हम कई विंडो को संभाल सकते हैं।

Driver.getWindowHandles ();

वेब ड्राइवर द्वारा सभी खोली गई खिड़कियों को संभालने के लिए, हम "Driver.getWindowHandles ()" का उपयोग कर सकते हैं और फिर हम वेब एप्लिकेशन में एक विंडो से दूसरी विंडो को स्विच कर सकते हैं। इसका रिटर्न टाइप Iterator है।

Driver.getWindowHandle ();

जब साइट खुलती है, तो हमें driver.getWindowHandle () द्वारा मुख्य विंडो को संभालने की आवश्यकता होती है । यह वर्तमान विंडो को संभालेगा जो विशिष्ट रूप से इस चालक उदाहरण में पहचानती है। इसका रिटर्न टाइप स्ट्रिंग है।

सेलेनियम में विंडो हैंडलिंग के लिए, हम निम्न चरणों का पालन करेंगे:

अब, हम नीचे दिए गए परिदृश्य को स्वचालित रूप से देखेंगे कि सेलेनियम वेबड्राइवर का उपयोग करके कई विंडोज़ कैसे संभालें।

इस परिदृश्य में, हम "गुरु99" डेमो साइट का उपयोग विंडो हैंडलिंग को चित्रित करने के लिए करेंगे।

चरण 1) साइट लॉन्च करें।

ब्राउज़र लॉन्च करें और साइट खोलें " http://demo.guru99.com/popup.php "

चरण 2) लिंक पर क्लिक करें "यहां क्लिक करें"।

जब उपयोगकर्ता "यहां क्लिक करें" लिंक पर क्लिक करता है, तो नई चाइल्ड विंडो खुलती है।

चरण 3) नई बाल खिड़की खुलती है।

एक नई विंडो खुलती है, उपयोगकर्ता को ईमेल आईडी दर्ज करने और पृष्ठ सबमिट करने के लिए कहें।

चरण 4) अपनी ईमेल आईडी दर्ज करें और सबमिट करें।

चरण 5) पृष्ठ सबमिट करने पर एक्सेस क्रेडेंशियल्स प्रदर्शित करें।

जब आप कोड निष्पादित करते हैं, तो आप देखेंगे कि बच्चा विंडो नए टैब में खुला है।

  1. उस बाल विंडो को बंद करें जिस पर क्रेडेंशियल्स प्रदर्शित किए गए हैं।
  1. मूल विंडो पर स्विच करें।

उपरोक्त परिदृश्य का उपयोग करते हुए सेलेनियम वेबड्राइवर में कई विंडो को संभालना।

आयात java.util.Iterator;आयात java.util.Set;आयात org.openqa.selenium.By;आयात org.openqa.selenium.WebDriver;आयात org.openqa.selenium.firefox.FirefoxDriver;सार्वजनिक वर्ग WindowHandle_Demo {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) InterruptedException {फेंकता हैWebDriver ड्राइवर = नया FirefoxDriver ();// साइट लॉन्च करना।Driver.get ("http://demo.guru99.com/popup.php");Driver.manage ()। window ()। मैक्सिमम ();Driver.findElement (By.xpath ("// * [(@ href, 'popup.php')]")) क्लिक करें ();स्ट्रिंग MainWindow = driver.getWindowHandle ();// सभी नए खुले विंडो को संभालने के लिए।सेट करें  s1 = driver.getWindowHandles ();Iterator  i1 = s1.iterator ();जबकि (i1.hasNext ()){{स्ट्रिंग चाइल्डविंडो = i1.next ();अगर ({{// चाइल्ड विंडो पर स्विच करनाDriver.switchTo ()। window (ChildWindow);Driver.findElement (By.name ("ई-मेल")).sendKeys (" यह ईमेल पता spambots से संरक्षित किया जा रहा है। आपको इसे देखने के लिए जावास्क्रिप्ट सक्रिय होना चाहिए।");Driver.findElement (By.name ("btnLogin"))। क्लिक करें ();// चाइल्ड विंडो को बंद करना।Driver.close ();}}// पैरेंट विंडो पर स्विच करना अर्थात मुख्य विंडो।Driver.switchTo ()। window (MainWindow);}}

आउटपुट:

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

सेलेनियम में एकाधिक विंडो हैंडलिंग

निष्कर्ष:

  • हमने अलर्ट के प्रकारों को परिभाषित किया और उन्हें स्क्रीन शॉट के साथ दिखाया।
  • विशेष परिदृश्य का उपयोग करते हुए सेलेनियम वेबड्राइवर के साथ अलर्ट को हैंडल करना।
  • विशेष परिदृश्य का उपयोग करते हुए सेलेनियम वेबड्राइवर के साथ कई खिड़कियां संभाला।