कुकीज़ को कैसे संभालें Selenium वेबड्राइवर

HTTP कुकी में उपयोगकर्ता और उनकी प्राथमिकताओं के बारे में जानकारी शामिल होती है। यह कुंजी-मूल्य जोड़ी का उपयोग करके जानकारी संग्रहीत करता है। यह वेब एप्लिकेशन से भेजा गया डेटा का एक छोटा सा हिस्सा है और वेब ब्राउज़र में संग्रहीत होता है, जबकि उपयोगकर्ता उस वेबसाइट को ब्राउज़ कर रहा होता है।

के बारे में जानने के लिए यहां क्लिक करें कुकी परीक्षण.

Selenium कुकीज़ के लिए क्वेरी कमांड

In Selenium वेबड्राइवर में, हम नीचे दी गई अंतर्निहित विधि से कुकीज़ के साथ क्वेरी और इंटरैक्ट कर सकते हैं:

Selenium क्वेरी आदेश उत्पादन
driver.manage().getCookies(); सभी कुकीज़ की सूची लौटाएँ
driver.manage().getCookieNamed(arg0); नाम के अनुसार विशिष्ट कुकी लौटाएँ
driver.manage().addCookie(arg0); कुकी बनाएं और जोड़ें
driver.manage().deleteCookie(arg0); विशिष्ट कुकी हटाएं
driver.manage().deleteCookieNamed(arg0); नाम के अनुसार विशिष्ट कुकी हटाएं
driver.manage().deleteAllCookies(); सभी कुकीज़ हटाएं

कुकीज़ को क्यों संभालें (स्वीकार करें) Selenium?

प्रत्येक कुकी एक नाम, मान, डोमेन, पथ, समाप्ति तिथि और इस बात की स्थिति से जुड़ी होती है कि यह सुरक्षित है या नहीं। क्लाइंट को मान्य करने के लिए, सर्वर कुकी में इन सभी मानों को पार्स करता है।

. परीक्षण सेलेनियम वेब ड्राइवर का उपयोग करने वाले वेब अनुप्रयोग के लिए, आपको कुकी बनाने, अपडेट करने या हटाने की आवश्यकता हो सकती है।

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

यदि कुकीज़ संग्रहीत नहीं हैं, तो आपको ऊपर सूचीबद्ध परीक्षण परिदृश्यों को निष्पादित करने से पहले हर बार लॉगिन कार्रवाई करने की आवश्यकता होगी। इससे आपकी कोडिंग मेहनत और निष्पादन समय बढ़ जाएगा।

इसका समाधान कुकीज़ को एक फ़ाइल में संग्रहीत करना है। Later, इस फ़ाइल से कुकी के मान प्राप्त करें और इसमें अपना वर्तमान ब्राउज़र सत्र जोड़ें। परिणामस्वरूप, आप हर बार लॉगिन चरणों को छोड़ सकते हैं परीक्षण का मामला क्योंकि आपके ड्राइवर सत्र में यह जानकारी होती है।

एप्लिकेशन सर्वर अब आपके ब्राउज़र सत्र को प्रमाणीकृत मानता है और आपको सीधे आपके अनुरोधित URL पर ले जाता है।

कुकीज़ को कैसे संभालें Selenium

हम इस्तेमाल करेंगे https://demo.guru99.com/test/cookie/selenium_aut.php हमारे डेमो उद्देश्य के लिए.

यह 2 चरण की प्रक्रिया होगी।

चरण 1) एप्लिकेशन में लॉग इन करें और उत्पन्न प्रमाणीकरण कुकी को संग्रहीत करें।

कुकीज़ को संभालें Selenium

चरण 2) उपयोगकर्ता आईडी और पासवर्ड का उपयोग किए बिना एप्लिकेशन में पुनः लॉगिन करने के लिए संग्रहीत कुकी का उपयोग किया गया।

चरण 1) कुकी जानकारी संग्रहीत करना

package CookieExample;

import java.io.BufferedWriter;		
import java.io.File;		
import java.io.FileWriter;
import java.util.Set;
import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;		
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.Cookie;		

public class cookieRead{	
        public static void main(String[] args)		
    {
    	WebDriver driver;	
        System.setProperty("webdriver.chrome.driver","G:///chromedriver.exe");					
		driver=new ChromeDriver();        
		driver.get("https://demo.guru99.com/test/cookie/selenium_aut.php");

       				
        // Input Email id and Password If you are already Register		
        driver.findElement(By.name("username")).sendKeys("abc123");							
        driver.findElement(By.name("password")).sendKeys("123xyz");							
        driver.findElement(By.name("submit")).click();					
        		
        // create file named Cookies to store Login Information		
        File file = new File("Cookies.data");							
        try		
        {	  
            // Delete old file if exists
			file.delete();		
            file.createNewFile();			
            FileWriter fileWrite = new FileWriter(file);							
            BufferedWriter Bwrite = new BufferedWriter(fileWrite);							
            // loop for getting the cookie information 		
            	
            // loop for getting the cookie information 		
            for(Cookie ck : driver.manage().getCookies())							
            {			
                Bwrite.write((ck.getName()+";"+ck.getValue()+";"+ck.getDomain()+";"+ck.getPath()+";"+ck.getExpiry()+";"+ck.isSecure()));																									
                Bwrite.newLine();             
            }			
            Bwrite.close();			
            fileWrite.close();	
            
        }
        catch(Exception ex)					
        {		
            ex.printStackTrace();			
        }		
    }		
}

कोड स्पष्टीकरण:

  • WebDriver इंस्टैंस बनाएँ
  • हम driver.get(“https://demo.guru99.com/test/cookie/selenium_aut.php”) का उपयोग करके वेबसाइट पर जाते हैं
  • एप्लीकेशन में लॉग इन करें
  • कुकी जानकारी को पढ़ने के लिए निम्न का उपयोग करें:
    driver.manage().getCookies();
  • अक्षरों और अक्षरों की स्ट्रीम लिखने के लिए FileWriter क्लास का उपयोग करके कुकी जानकारी संग्रहीत करें BufferedWriter फ़ाइल में पाठ लिखने के लिए कुकीज़.डेटा फ़ाइल बनाने के लिए
  • “कुकीज़.डेटा” फ़ाइल “नाम, मान, डोमेन, पथ” के साथ सभी कुकीज़ जानकारी संग्रहीत करती है। हम इस जानकारी को पुनः प्राप्त कर सकते हैं और लॉगिन क्रेडेंशियल दर्ज किए बिना एप्लिकेशन में लॉगिन कर सकते हैं।
  • एक बार जब आप ऊपर दिए गए कोड को चला लेते हैं तो Cookie.data फ़ाइल प्रोजेक्ट फ़ोल्डर संरचना में बन जाती है जैसा कि नीचे स्क्रीन में दिखाया गया है। Cookie.data फ़ाइल खोलें, आप देख सकते हैं कि AUT का लॉगिन क्रेडेंशियल Cookie के प्रारूप में सहेजा गया है, नीचे हाइलाइट की गई स्क्रीन देखें

    कुकीज़ को संभालें Selenium

चरण 2) एप्लिकेशन में लॉगिन करने के लिए संग्रहीत कुकी का उपयोग करना

अब, हम चरण 1 में उत्पन्न कुकी तक पहुंचेंगे और एप्लिकेशन में हमारे सत्र को प्रमाणित करने के लिए उत्पन्न कुकी का उपयोग करेंगे

package CookieExample;

import java.io.BufferedReader;		
import java.io.File;		
import java.io.FileReader;		
import java.util.Date;		
import java.util.StringTokenizer;		
import org.openqa.selenium.Cookie;		
import org.openqa.selenium.WebDriver;		
import org.openqa.selenium.chrome.ChromeDriver;

public class CookieWrite		
{		
  
	public static void main(String[] args){ 
    	WebDriver driver;     
       	System.setProperty("webdriver.chrome.driver","G://chromedriver.exe");					
        driver=new ChromeDriver();					
    try{			
     
        File file = new File("Cookies.data");							
        FileReader fileReader = new FileReader(file);							
        BufferedReader Buffreader = new BufferedReader(fileReader);							
        String strline;			
        while((strline=Buffreader.readLine())!=null){									
        StringTokenizer token = new StringTokenizer(strline,";");									
        while(token.hasMoreTokens()){					
        String name = token.nextToken();					
        String value = token.nextToken();					
        String domain = token.nextToken();					
        String path = token.nextToken();					
        Date expiry = null;					
        		
        String val;			
        if(!(val=token.nextToken()).equals("null"))
		{		
        	expiry = new Date(val);					
        }		
        Boolean isSecure = new Boolean(token.nextToken()).								
        booleanValue();		
        Cookie ck = new Cookie(name,value,domain,path,expiry,isSecure);			
        System.out.println(ck);
        driver.manage().addCookie(ck); // This will add the stored cookie to your current session					
        }		
        }		
        }catch(Exception ex){					
        ex.printStackTrace();			
        }		
        driver.get("https://demo.guru99.com/test/cookie/selenium_aut.php");					
}	
	}	

आउटपुट: आपको इनपुट यूजर आईडी और पासवर्ड दर्ज किए बिना सीधे लॉगिन सफलता स्क्रीन पर ले जाया जाता है

नोट: यदि उपरोक्त स्क्रिप्ट निष्पादित करने के बाद आपको लॉगिन पृष्ठ दिखाई दे तो हार्ड रिफ्रेश का उपयोग करें।

निष्कर्ष

इस प्रकार, आप इसकी सहायता से प्रत्येक परीक्षण के लिए सर्वर पर उपयोगकर्ता नाम और पासवर्ड को बार-बार दर्ज करने से बच सकते हैं। Selenium वेबड्राइवर का उपयोग करके आप समय की काफी बचत कर सकते हैं।