how handle alerts popups selenium webdriver selenium tutorial 16
सेलेनियम वेबड्राइवर में विंडोज और वेब आधारित अलर्ट / पॉपअप को संभालने के कुशल तरीके:
c ++ में int को चेंज कैसे करे
पिछले ट्यूटोरियल में, हमने अपनी चर्चा पर ध्यान केंद्रित किया वेबड्राइवर द्वारा प्रदान किए गए विभिन्न प्रकार के इंतजार । हमने वेबड्राइवर में उपलब्ध विभिन्न प्रकार के नेविगेशन विकल्पों के बारे में भी चर्चा की।
में आगे बढ़ रहा है सेलेनियम वेबड्राइवर ट्यूटोरियल , हम के बारे में चर्चा करेंगे वेब एप्लिकेशन और उनकी हैंडलिंग रणनीतियों का परीक्षण करते समय विभिन्न प्रकार के अलर्ट उपलब्ध हैं।
दो तरह के अलर्ट हैं जिन पर हम प्रमुखता से ध्यान केंद्रित करेंगे :
- विंडोज-आधारित अलर्ट पॉप-अप
- वेब-आधारित अलर्ट पॉप-अप
जैसा कि हम जानते हैं कि विंडोज़ आधारित पॉप-अप को हैंडल करना वेबड्राइवर की क्षमताओं से परे है, इसलिए हम विंडो पॉप-अप को संभालने के लिए कुछ तृतीय-पक्ष उपयोगिताओं का उपयोग करेंगे।
पॉप अप को संभालना वेब अनुप्रयोगों का परीक्षण करते समय स्वचालित करने के लिए काम के सबसे चुनौतीपूर्ण टुकड़ों में से एक है। पॉप अप के प्रकारों में विविधता के कारण स्थिति और भी जटिल हो जाती है।
अलर्ट बॉक्स / पॉप अप बॉक्स / पुष्टिकरण बॉक्स / प्रॉम्प्ट / प्रमाणीकरण बॉक्स क्या है?
यह कुछ भी नहीं है, लेकिन डिस्प्ले स्क्रीन पर एक छोटा सा बॉक्स दिखाई देता है जो आपको किसी प्रकार की जानकारी देता है या आपको संभावित नुकसानदायक ऑपरेशन के बारे में चेतावनी देता है या यह आपसे ऑपरेशन के लिए अनुमति भी मांग सकता है।
उदाहरण: आइए हम बेहतर समझ के लिए वास्तविक जीवन के उदाहरण पर विचार करें; आइए मान लें कि हमने इनमें से किसी लोकप्रिय सोशल नेटवर्किंग साइट पर एक तस्वीर अपलोड की है। बाद में, मैं अपलोड की गई तस्वीर को हटाना चाहता हूं। इसलिए डिलीट करने के लिए मैंने डिलीट बटन पर क्लिक किया। जैसे ही मैं डिलीट बटन पर क्लिक करता हूं, सिस्टम मेरी कार्रवाई के खिलाफ चेतावनी देता है, संकेत देता है - क्या आप वास्तव में फ़ाइल को हटाना चाहते हैं? इसलिए अब हमारे पास इस अलर्ट को स्वीकार करने या इसे अस्वीकार करने का विकल्प है।
तो सत्र के आगे, आइए देखें कि हम उनके प्रकारों के आधार पर अलर्ट को कैसे अस्वीकार या स्वीकार करते हैं। वेब-आधारित पॉप अप के साथ शुरू।
आप क्या सीखेंगे:
वेब-आधारित पॉपअप
आइए देखें कि वेबड्राइवर का उपयोग करके हम उन्हें कैसे संभालते हैं।
वेब-आधारित पॉप-अप बॉक्स को संभालना
वेबड्राइवर उपयोगकर्ताओं को अलर्ट इंटरफ़ेस का उपयोग करके इन पॉप अप को संभालने के लिए एक बहुत ही कुशल तरीका प्रदान करता है।
ऐसे चार तरीके हैं जिनका उपयोग हम अलर्ट इंटरफेस के साथ करेंगे।
1) शून्य खारिज () - पॉप अप विंडो दिखाई देते ही 'रद्द करें' बटन पर खारिज () विधि क्लिक करता है।
दो) शून्य स्वीकार () - पॉप अप विंडो के प्रकट होते ही स्वीकार () विधि 'ओके' बटन पर क्लिक करता है।
3) स्ट्रिंग getText () - गेटटेक्स्ट () विधि अलर्ट बॉक्स पर प्रदर्शित पाठ लौटाता है।
4) शून्य SendKeys (स्ट्रिंग stringToSend) - SendKeys () विधि निर्दिष्ट स्ट्रिंग पैटर्न को अलर्ट बॉक्स में दर्ज करती है।
आइए हम आगे बढ़ें और वास्तविक कार्यान्वयन को देखें।
टेस्ट के तहत आवेदन की व्याख्या
हमने कुछ मूलभूत प्रकार के वेब तत्वों को शामिल करने के लिए एक वेब पेज डिज़ाइन किया है। यह वही एप्लिकेशन है जिसे हमने इस श्रृंखला में पहले सेलेक्ट क्लास के बारे में चर्चा करते हुए पेश किया था।
- हाइपरलिंक : 'Google' और 'abodeQA' नाम के दो हाइपरलिंक प्रदान किए गए हैं जो उपयोगकर्ता को क्रमशः 'http://www.google.com/' और 'http://www.abodeqa.com/' पर पुनः निर्देशित करते हैं। घटना पर क्लिक करें।
- ड्रॉप डाउन : तीन हाइपरलिंक डिफ़ॉल्ट रूप से सेट मूल्य के साथ रंग, फल और जानवरों का चयन करने के लिए बनाए गए हैं।
- बटन : क्लिक इवेंट पर ओके और कैंसल बटन वाले पॉप अप बॉक्स को दिखाने के लिए 'कोशिश इट' बटन बनाया गया है।
(बढ़े हुए देखने के लिए चित्र पर क्लिक करें)
उपर्युक्त वेबपेज बनाने के लिए प्रयोग किया जाने वाला HTML कोड है:
परीक्षण कक्षा का चयन करेंलाल हरा पीला ग्रे | सेब ऑरेंज मैंगो लाइम | एलिफेंट माउस डॉग का चयन करें |
पुष्टिकरण बॉक्स प्रदर्शित करने के लिए बटन पर क्लिक करें। इसे आज़माएँ फंक्शन myFunction () {पुष्टिकरण ('एक बटन दबाएं!'); } |
परिदृश्य स्वचालित होने के लिए
- वेब ब्राउज़र लॉन्च करें और वेबपेज खोलें
- 'इसे आज़माएं' बटन पर क्लिक करें
- अलर्ट स्वीकार करें
- फिर से 'कोशिश करो' बटन पर क्लिक करें
- अलर्ट को अस्वीकार करें
WebDriver Code Select Class का उपयोग करके
कृपया ध्यान दें कि स्क्रिप्ट निर्माण के लिए, हम पूर्व ट्यूटोरियल में निर्मित 'Learning_Selenium' परियोजना का उपयोग करेंगे।
चरण 1 : 'Learning_Selenium' प्रोजेक्ट के तहत एक नया जावा वर्ग बनाएं जिसका नाम 'DemoWebAlert' है।
चरण 2 : 'DemoWebAlert.java' वर्ग में नीचे दिए गए कोड को कॉपी और पेस्ट करें।
नीचे परीक्षण स्क्रिप्ट है जो उपर्युक्त परिदृश्य के बराबर है।
import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; /** * class description */ public class DemoWebAlert { WebDriver driver; /** * Constructor */ public DemoWebAlert() { } /** * Set up browser settings and open the application */ @Before public void setUp() { driver=new FirefoxDriver(); // Opened the application driver.get('file:///F:/Work/Selenium/Testing-Presentation/DemoWebPopup.htm'); driver.manage().window().maximize(); } /** * Test to check Select functionality * @throws InterruptedException */ @Test public void testWebAlert() throws InterruptedException { // clicking on try it button driver.findElement(By.xpath('//button(contains(text(),'Try it'))')).click(); Thread.sleep(5000); // accepting javascript alert Alert alert = driver.switchTo().alert(); alert.accept(); // clicking on try it button driver.findElement(By.xpath('//button(contains(text(),'Try it'))')).click(); Thread.sleep(5000); // accepting javascript alert driver.switchTo().alert().dismiss(); // clicking on try it button driver.findElement(By.xpath('//button(contains(text(),'Try it'))')).click(); Thread.sleep(5000); // accepting javascript alert System.out.println(driver.switchTo().alert().getText()); driver.switchTo().alert().accept(); } /** * Tear down the setup after test completes */ @After public void tearDown() { driver.quit(); } }
कोड के माध्यम से चलना
आयात विवरण
आयात org.openqa.selenium.Alert - स्क्रिप्ट निर्माण से पहले इस पैकेज को आयात करें। पैकेज अलर्ट अलर्ट वर्ग को संदर्भित करता है जो वेबड्राइवर में वेब-आधारित अलर्ट को संभालने के लिए आवश्यक है।
अलर्ट क्लास के लिए ऑब्जेक्ट क्रिएशन
चेतावनी चेतावनी = driver.switchTo ()। Alert ();
हम अलर्ट वर्ग के लिए एक संदर्भ चर बनाते हैं और इसे चेतावनी के संदर्भ में भेजते हैं।
.net वेब सेवा साक्षात्कार प्रश्न
अलर्ट पर जाएं
Driver.switchTo ()। Alert ();
उपरोक्त कमांड का उपयोग हाल ही में उत्पन्न पॉप अप विंडो पर नियंत्रण स्विच करने के लिए किया जाता है।
अलर्ट स्वीकार करें
alert.accept ();
ऊपर दिए गए आदेश को स्वीकार करता है जिससे ओके बटन पर क्लिक किया जा सके।
अलर्ट को अस्वीकार करें
alert.dismiss ();
उपरोक्त कमांड अलर्ट को बंद कर देता है जिससे कैंसल बटन पर क्लिक करना पड़ता है और इसलिए ऑपरेशन आगे नहीं बढ़ना चाहिए।
विंडो आधारित पॉप-अप
स्वचालित करते समय, हमें कुछ परिदृश्य मिलते हैं, जहाँ हमें फ़ाइल अपलोड करते समय प्रिंट पॉप अप या ब्राउज़िंग विंडो जैसी विंडो द्वारा उत्पन्न पॉप अप को संभालने की आवश्यकता होती है।
यह भी पढ़ें = >> सेलेनियम में फ़ाइल अपलोड को कैसे संभालना है
इन पॉप-अप को संभालना हमेशा थोड़ा मुश्किल रहा है क्योंकि हम जानते हैं कि सेलेनियम एक स्वचालन परीक्षण उपकरण है जो केवल वेब अनुप्रयोग परीक्षण का समर्थन करता है, इसका मतलब है कि यह विंडोज़ आधारित अनुप्रयोगों का समर्थन नहीं करता है और विंडो अलर्ट उनमें से एक है। हालांकि सेलेनियम अकेले स्थिति में मदद नहीं कर सकता है, लेकिन कुछ तीसरे पक्ष के हस्तक्षेप के साथ, इस समस्या को दूर किया जा सकता है।
सेलेनियम के साथ विंडो आधारित पॉप-अप को संभालने के लिए कई तृतीय-पक्ष उपकरण उपलब्ध हैं।
सी + + में क्या है
इसलिए अब रोबोट क्लास का उपयोग करते हुए एक विंडो आधारित पॉप अप को हैंडल करें।
रोबोट क्लास एक जावा आधारित उपयोगिता है जो कीबोर्ड और माउस क्रियाओं का अनुकरण करती है।
आगे बढ़ने से पहले, आइए हम परीक्षण (AUT) के तहत आवेदन पर एक नज़र डालें।
टेस्ट के तहत आवेदन की व्याख्या
परीक्षण के तहत एक आवेदन के रूप में, हम 'gmail.com' का उपयोग करेंगे। मेरा मानना है कि आवेदन के लिए किसी और परिचय की आवश्यकता नहीं है।
परिदृश्य स्वचालित होने के लिए
- वेब ब्राउज़र लॉन्च करें और एप्लिकेशन खोलें - 'gmail.com'
- मान्य उपयोगकर्ता नाम और पासवर्ड दर्ज करें
- साइन इन बटन पर क्लिक करें
- कंपोज बटन पर क्लिक करें
- अटैच आइकन पर क्लिक करें
- विंडो आधारित पॉप अप के साथ अपलोड की जाने वाली फ़ाइलों का चयन करें।
रोबोट क्लास का उपयोग करके वेबड्राइवर कोड
कृपया ध्यान दें कि स्क्रिप्ट निर्माण के लिए, हम पूर्व ट्यूटोरियल में निर्मित 'Learning_Selenium' परियोजना का उपयोग करेंगे।
चरण 1 : 'Learning_Selenium' प्रोजेक्ट के तहत एक नया जावा वर्ग बनाएं जिसका नाम 'DemoWindowAlert' है।
चरण 2 : 'DemoWindowAlert.java' वर्ग में नीचे दिए गए कोड को कॉपी और पेस्ट करें।
नीचे परीक्षण स्क्रिप्ट है जो उपर्युक्त परिदृश्य के बराबर है।
import java.awt.Robot;
आयात java.awt.event.KeyEvent; आयात org.junit.After; आयात org.junit.Before; आयात org.junit.Test; आयात org.openqa.selenium.By; आयात org.openqa.selenium.WebDriver; आयात org.openqa.selenium.firefox.FirefoxDriver; जनता वर्ग DemoWindowAlert {WebDriver ड्राइवर; @ पहले सार्वजनिक शून्य सेटअप () {ड्राइवर = नया फ़ायरफ़ॉक्सड्राइवर (); Driver.get ('https://gmail.com'); Driver.manage ()। window ()। मैक्सिमम (); ) // एक वैध पासवर्ड ड्राइवर दर्ज करें ।findElement (By.id ('Passwd'))। sendKeys ('TestSelenium'); // साइन इन बटन ड्राइवर पर क्लिक करें। Refield (By.id ('साइन इन'))। क्लिक करें (); थ्रेड.स्लीप (30000); // कंपोज़ बटन के ड्राइवर पर क्लिक करें ।findElement (By.xpath ('// div (@ class =' z0 ') // div (समाहित (पाठ), (COMPOSE')) ') पर क्लिक करें (); // अटैच फाइल्स आइकन पर क्लिक करें driver.findElement (By.xpath ('// div) (@ कमांड,' फाइल्स ')) // div (इसमें (@ क्लास,' एएए '))') क्लिक करें। ); // रोबोट वर्ग (ए जावा आधारित उपयोगिता) रोबोट आरबी = नया रोबोट () का उदाहरण; // keyPress और keyRelease इवेंट्स rb.keyPress (KeyEvent.VK_D) की मदद से कुंजी दबाने; rb.keyRelease (KeyEvent.VK_D); थ्रेड.स्लीप (2000); rb.keyPress (KeyEvent.VK_SHIFT); rb.keyPress (KeyEvent.VK_SEMICOLON); rb.keyRelease (KeyEvent.VK_SEMICOLON); rb.keyRelease (KeyEvent.VK_SHIFT); rb.keyPress (KeyEvent.VK_BACK_SLASH); rb.keyRelease (KeyEvent.VK_BACK_SLASH); थ्रेड.स्लीप (2000); rb.keyPress (KeyEvent.VK_P); rb.keyRelease (KeyEvent.VK_P); rb.keyPress (KeyEvent.VK_I); rb.keyRelease (KeyEvent.VK_I); rb.keyPress (KeyEvent.VK_C); rb.keyRelease (KeyEvent.VK_C); थ्रेड.स्लीप (2000); rb.keyPress (KeyEvent.VK_ENTER); rb.keyRelease (KeyEvent.VK_ENTER); थ्रेड.स्लीप (2000); } @After public void tearDown () {driver.quit (); }} कोड के माध्यम से चलना
आयात विवरण
आयात java.awt.Robot - स्क्रिप्ट निर्माण से पहले इस पैकेज को आयात करें जावा में रोबोट वर्ग के लिए पैकेज संदर्भ जो की-बोर्ड और माउस ईवेंट की आवश्यकता है।
आयात java.awt.event.KeyEvent - पैकेज उपयोगकर्ता को कीबोर्ड के कीपर और कीलरेज घटनाओं का उपयोग करने की अनुमति देता है।
रोबोट वर्ग के लिए ऑब्जेक्ट क्रिएशन
रोबोट आरबी = नया रोबोट ();
हम रोबोट वर्ग के लिए एक संदर्भ चर बनाते हैं और इसे तुरंत भेजते हैं।
KeyPress और KeyRelease ईवेंट
rb.keyPress (KeyEvent.VK_D);
rb.keyRelease (KeyEvent.VK_D);
कीबोर्ड पर एक निश्चित कुंजी को दबाने और जारी करने के लिए कीप्रेस और कीलरेज विधियाँ उपयोगकर्ता को अनुकरण करती हैं।
निष्कर्ष
इस ट्यूटोरियल में, हमने आपको WebDriver के Alert वर्ग से परिचित कराने का प्रयास किया, जिसका उपयोग वेब-आधारित पॉप अप को संभालने के लिए किया जाता है। हमने आपको उस रोबोट वर्ग के बारे में भी जानकारी दी है, जिसका उपयोग की-वर्ड और की-लीज घटनाओं की मदद से विंडो आधारित अलर्ट में मूल्य को पॉप्युलेट करने के लिए किया जा सकता है।
लेख सारांश:
- अलर्ट एक छोटा सा बॉक्स है जो डिस्प्ले स्क्रीन पर आपको किसी प्रकार की जानकारी देने या संभावित नुकसानदायक ऑपरेशन के बारे में आगाह करने के लिए दिखाई देता है या यह आपसे ऑपरेशन के लिए अनुमति भी मांग सकता है।
- लोकप्रिय रूप से दो प्रकार के अलर्ट हैं -
- विंडोज-आधारित अलर्ट पॉप अप
- वेब-आधारित अलर्ट पॉप अप
- वास्तविक स्क्रिप्टिंग से पहले, हमें ड्रॉप-डाउन से निपटने और चयन वर्ग को सुलभ बनाने के लिए एक WebDriver स्क्रिप्ट बनाने में सक्षम होने के लिए एक पैकेज आयात करने की आवश्यकता है।
- वेबड्राइवर उपयोगकर्ताओं को अलर्ट इंटरफ़ेस का उपयोग करके इन पॉप अप को संभालने के लिए एक बहुत ही कुशल तरीका प्रदान करता है।
- शून्य खारिज () - खारिज () जैसे ही पॉप अप विंडो दिखाई देती है, 'रद्द करें' बटन पर क्लिक करें।
- शून्य स्वीकार () - स्वीकार करते हैं() जैसे ही पॉप अप विंडो दिखाई देती है 'ओके' बटन पर क्लिक करता है।
- तार GetText () - GetText () विधि अलर्ट बॉक्स पर प्रदर्शित पाठ लौटाता है।
- शून्य SendKeys (स्ट्रिंग stringToSend) - sendKeys () विधि निर्दिष्ट स्ट्रिंग पैटर्न को अलर्ट बॉक्स में प्रवेश करती है।
- हैंडलिंग विंडो आधारित पॉप-अप हमेशा थोड़ा मुश्किल रहा है क्योंकि हम जानते हैं कि सेलेनियम एक स्वचालन परीक्षण उपकरण है जो केवल वेब अनुप्रयोग परीक्षण का समर्थन करता है, इसका मतलब है कि यह विंडोज़ आधारित अनुप्रयोगों का समर्थन नहीं करता है और विंडो अलर्ट उनमें से एक है।
- रोबोट वर्ग एक जावा आधारित उपयोगिता है जो कीबोर्ड और माउस क्रियाओं का अनुकरण करता है और इसे प्रभावी रूप से कीबोर्ड घटनाओं की मदद से विंडो आधारित पॉप अप को संभालने के लिए उपयोग किया जा सकता है।
- कीबोर्ड पर एक निश्चित कुंजी को दबाने और जारी करने के लिए कीप्रेस और कीलरेज विधियाँ उपयोगकर्ता को अनुकरण करती हैं।
अगला ट्यूटोरियल # 17 : आगामी ट्यूटोरियल में, हम विभिन्न अन्य के बारे में चर्चा करेंगे आमतौर पर इस्तेमाल किया WebDriver कमांड । हम अपवाद हैंडलिंग और iframe हैंडलिंग जैसे विषयों पर प्रकाश डालेंगे। हम वेबड्राइवर में दिए गए कमांड के बारे में भी चर्चा करेंगे।
हम इन विषयों को त्वरित उदाहरणों के साथ समझाएंगे ताकि पाठकों को इन अवधारणाओं को समझने के लिए उनकी दिन-प्रतिदिन की स्क्रिप्टिंग में व्यायाम किया जा सके।
पाठकों के लिए ध्यान दें : तब तक, बने रहें और वेब पेज को पॉप-अप करें और वेबड्राइवर उपयोगिता का उपयोग करके वेब आधारित और विंडो आधारित पॉप अप - 'अलर्ट क्लास' और जावा उपयोगिता - 'रोबोट क्लास' को स्वचालित करें।
नीचे दिए गए टिप्पणियों में इस या किसी अन्य पिछले ट्यूटोरियल के बारे में अपने प्रश्नों / टिप्पणियों को बेझिझक पोस्ट करें।
अनुशंसित पाठ
- ककड़ी सेलेनियम ट्यूटोरियल: ककड़ी जावा सेलेनियम वेबड्राइवर एकीकरण
- सेलेनियम वेबड्राइवर का परिचय - सेलेनियम ट्यूटोरियल # 8
- हमारी पहली वेबड्राइवर स्क्रिप्ट का कार्यान्वयन - सेलेनियम वेबड्राइवर ट्यूटोरियल # 10
- वेबड्राइवर संपूर्ण सेटअप और स्थापना ग्रहण के साथ - सेलेनियम ट्यूटोरियल # 9
- विभिन्न प्रकार के वेबड्राइवर कमांड - सेलेनियम ट्यूटोरियल # 14 का उपयोग करके वेब तत्वों की दृश्यता की जांच करें
- गेकोड्राइवर सेलेनियम ट्यूटोरियल: सेलेनियम प्रोजेक्ट्स में गेकोड्राइवर का उपयोग कैसे करें
- सेलेनियम वेबड्राइवर के साथ जेनकिंस का एकीकरण: चरण-दर-चरण ट्यूटोरियल
- कुशल सेलेनियम स्क्रिप्टिंग और समस्या निवारण परिदृश्य - सेलेनियम ट्यूटोरियल # 27