एक HTTP कुकी में उपयोगकर्ता और उनकी प्राथमिकताओं के बारे में जानकारी शामिल होती है। यह कुंजी-मूल्य जोड़ी का उपयोग करके जानकारी संग्रहीत करता है। यह वेब एप्लिकेशन से भेजे गए डेटा का एक छोटा सा टुकड़ा है और वेब ब्राउज़र में संग्रहीत है, जबकि उपयोगकर्ता उस वेबसाइट को ब्राउज़ कर रहा है।
कुकी परीक्षण के बारे में जानने के लिए यहां क्लिक करें।
इस ट्यूटोरियल में, हम सीखेंगे -
- कुकीज़ के लिए सेलेनियम क्वेरी कमांड
- सेलेनियम में हैंडल कुकीज़ क्यों?
- डेमो: सेलेनियम में कुकी हैंडलिंग।
- चरण 1) कुकी जानकारी संग्रहीत करना।
- चरण 2) आवेदन में लॉगिन करने के लिए संग्रहीत कुकी का उपयोग करना।
कुकीज़ के लिए सेलेनियम क्वेरी कमांड
सेलेनियम वेबड्राइवर में, हम नीचे निर्मित विधि से कुकीज़ के साथ क्वेरी और इंटरेक्ट कर सकते हैं:
Driver.manage ()। getCookies (); // सभी कुकीज़ की सूची लौटाएंDriver.manage ()। getCookieNamed (arg0); // नाम के अनुसार विशिष्ट कुकी वापस करेंDriver.manage ()। addCookie (arg0); // कुकी बनाएँ और जोड़ेंDriver.manage ()। deleteCookie (arg0); // विशिष्ट कुकी हटाएंDriver.manage ()। deleteCookieNamed (arg0); // नाम के अनुसार विशिष्ट कुकी हटाएंDriver.manage ()। DeleteAllCookies (); // सभी कुकीज़ हटा दें
सेलेनियम में हैंडल कुकीज़ क्यों?
प्रत्येक कुकी एक नाम, मूल्य, डोमेन, पथ, समाप्ति और यह सुरक्षित है या नहीं की स्थिति के साथ जुड़ा हुआ है। क्लाइंट को मान्य करने के लिए, एक सर्वर कुकी में इन सभी मानों को पार्स करता है।
सेलेनियम वेब ड्राइवर का उपयोग करके वेब एप्लिकेशन का परीक्षण करते समय, आपको कुकी बनाने, अपडेट करने या हटाने की आवश्यकता हो सकती है।
उदाहरण के लिए, ऑनलाइन शॉपिंग एप्लिकेशन को स्वचालित करते समय, आपको कई परीक्षण परिदृश्यों को स्वचालित करने की आवश्यकता होती है, जैसे स्थान आदेश, व्यू कार्ट, भुगतान जानकारी, आदेश की पुष्टि, आदि।
यदि कुकीज़ संग्रहीत नहीं हैं, तो आपको सूचीबद्ध परीक्षण परिदृश्यों के ऊपर निष्पादित करने से पहले आपको हर बार लॉगिन क्रिया करने की आवश्यकता होगी। यह आपके कोडिंग प्रयास और निष्पादन समय को बढ़ाएगा।
समाधान कुकीज़ को एक फ़ाइल में संग्रहीत करना है। बाद में, इस फ़ाइल से कुकी के मूल्यों को पुनः प्राप्त करें और इसे अपने वर्तमान ब्राउज़र सत्र में जोड़ें। परिणामस्वरूप, आप प्रत्येक टेस्ट केस में लॉगिन चरणों को छोड़ सकते हैं क्योंकि आपके ड्राइवर सत्र में यह जानकारी है।
एप्लिकेशन सर्वर अब आपके ब्राउज़र सत्र को प्रमाणित करता है और सीधे आपको आपके अनुरोधित URL पर ले जाता है।
डेमो: सेलेनियम में कुकी हैंडलिंग।
हम अपने डेमो उद्देश्य के लिए http://demo.guru99.com/test/cookie/selenium_aut.php का उपयोग करेंगे।
यह 2 चरण की प्रक्रिया होगी।
चरण 1) आवेदन में लॉगिन करें और जेनरेट किए गए प्रमाणीकरण को संग्रहीत करें।
चरण 2) संग्रहीत कुकी का उपयोग किया, उपयोगकर्ता और पासवर्ड का उपयोग किए बिना फिर से आवेदन में प्रवेश करने के लिए।
चरण 1) कुकी जानकारी संग्रहीत करना।
पैकेज कुकी। नमूना;आयात java.io.BufferedWriter;आयात java.io.File;आयात java.io.FileWriter;आयात java.util.Set;आयात org.openqa.selenium.By;आयात org.openqa.selenium.WebDriver;आयात org.openqa.selenium.chrome.ChromeDriver;आयात org.openqa.selenium.Cookie;पब्लिक क्लास कुकी {सार्वजनिक स्थैतिक शून्य main (String [] args){{WebDriver ड्राइवर;System.setProperty ("webdriver.chrome.driver", "G: ///chromedriver.exe)";ड्राइवर = नया क्रोमड्राइवर ();Driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");// इनपुट ईमेल आईडी और पासवर्ड यदि आप पहले से रजिस्टर हैंDriver.findElement (By.name ("उपयोगकर्ता नाम")। sendKeys ("abc123");Driver.findElement (By.name ("पासवर्ड"))। SendKeys ("123xyz");Driver.findElement (By.name ("सबमिट"))। क्लिक करें ();// लॉगिन जानकारी स्टोर करने के लिए कुकीज़ नाम की फाइल बनाएंफ़ाइल फ़ाइल = नई फ़ाइल ("Cookies.data");प्रयत्न{{// मौजूद होने पर पुरानी फाइल को डिलीट करेंfile.delete ();file.createNewFile ();FileWriter fileWrite = नई FileWriter (फाइल);बफ़रड्राइवर बाइटाइट = नया बफ़रड्राइटर (फ़ाइलविराइट);// कुकी जानकारी प्राप्त करने के लिए लूप// कुकी जानकारी प्राप्त करने के लिए लूपके लिए (कुकी ck: driver.manage ()। getCookies ()){{Bwrite.write ((ck.getName () + ";" + ck.getValue () + ";" + ck.getDomain () + ";" + ck.getPath () + ";" + ck.getExpiry)); + ";" + ck.isSecure ()));Bwrite.newLine ();}Bwrite.close ();fileWrite.close ();}पकड़ (अपवाद पूर्व){{ex.printStackTrace ();}}}
कोड स्पष्टीकरण:
- WebDriver उदाहरण बनाएँ
- हम ड्राइवर का उपयोग करके वेबसाइट पर जाएँ। ("http://demo.guru99.com/test/cookie/selenium_aut.php")
- आवेदन में लॉगिन करें
- कुकी जानकारी का उपयोग करके पढ़ें
Driver.manage ()। getCookies ();
- FileWriter क्लास का उपयोग करके FileWriter Class का उपयोग करके कैरेक्टर्स की स्ट्रीम लिखने के लिए और BufferedWriter को फाइल में लिखने के लिए एक फ़ाइल में लिखें।
- "Cookies.data" फ़ाइल "नाम, मान, डोमेन, पथ" के साथ सभी कुकीज़ जानकारी संग्रहीत करती है। हम इस जानकारी को पुनः प्राप्त कर सकते हैं और लॉगिन क्रेडेंशियल दर्ज किए बिना आवेदन में प्रवेश कर सकते हैं।
- एक बार जब आप ऊपर कोड चलाते हैं Cookie.data फ़ाइल प्रोजेक्ट फ़ोल्डर संरचना में बनाई जाती है जैसा कि नीचे स्क्रीन में दिखाया गया है। कुकी.डेटा फ़ाइल खोलें, आप देख सकते हैं कि ऑटो का लॉगिन क्रेडेंशियल कुकी के प्रारूप में सहेजा गया है, नीचे-हाइलाइट की गई स्क्रीन देखें
चरण 2) आवेदन में लॉगिन करने के लिए संग्रहीत कुकी का उपयोग करना।
अब, हम चरण 1 में उत्पन्न कुकी का उपयोग करेंगे और आवेदन में हमारे सत्र को प्रमाणित करने के लिए उत्पन्न कुकी का उपयोग करेंगे
पैकेज कुकी। नमूना;आयात java.io.BufferedReader;आयात java.io.File;आयात java.io.FileReader;आयात java.util.Date;आयात java.util.StringTokenizer;आयात org.openqa.selenium.Cookie;आयात org.openqa.selenium.WebDriver;आयात org.openqa.selenium.chrome.ChromeDriver;सार्वजनिक वर्ग कुकी{{सार्वजनिक स्थैतिक शून्य main (String [] args){WebDriver ड्राइवर;System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");ड्राइवर = नया क्रोमड्राइवर ();प्रयत्न{फ़ाइल फ़ाइल = नई फ़ाइल ("Cookies.data");FileReader fileReader = नया FileReader (फ़ाइल);बफ़रडर बफ़र = नया बफ़रडर (फ़ाइलराइडर);स्ट्रिंग की रूपरेखा;हालांकिStringTokenizer टोकन = नया StringTokenizer (strline, ";");(टोकन)स्ट्रिंग नाम = token.nextToken ();स्ट्रिंग मूल्य = token.nextToken ();स्ट्रिंग डोमेन = token.nextToken ();स्ट्रिंग पथ = token.nextToken ();समाप्ति की तारीख = अशक्त;स्ट्रिंग घाटी;अगर ((val = token.nextToken ())। बराबर ("नल")){{expiry = new date (val);}बूलियन isSecure = नया बूलियन (token.nextToken ())।बूलियनवैल्यू ();कुकी ck = नया कुकी (नाम, मान, डोमेन, पथ, समाप्ति, isSecure);System.out.println (ck);Driver.manage ()। addCookie (ck); // यह आपके वर्तमान सत्र में संग्रहीत कुकी जोड़ देगा}}} पकड़ (अपवाद पूर्व) {ex.printStackTrace ();}Driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");}}
OUTPUT: आपको सीधे इनपुट यूजर आईडी और पासवर्ड डाले बिना लॉगिन सफलता स्क्रीन पर ले जाया जाता है
नोट: यदि आप उपरोक्त स्क्रिप्ट निष्पादित करने के बाद लॉगिन पेज देखते हैं तो हार्ड रिफ्रेश का उपयोग करें।
निष्कर्ष
इस प्रकार, आप सेलेनियम वेबड्राइवर की मदद से प्रत्येक परीक्षण के लिए बार-बार सत्यापन करने वाले सर्वर पर उपयोगकर्ता नाम और पासवर्ड दर्ज करने से बच सकते हैं, और इस तरह बहुत समय बचाता है।
इस लेख में मंगेश वाघमारे का योगदान है