Πώς να χειρίζεστε τα cookies Selenium Πρόγραμμα οδήγησης Web

Ένα cookie HTTP αποτελείται από πληροφορίες σχετικά με τον χρήστη και τις προτιμήσεις του. Αποθηκεύει πληροφορίες χρησιμοποιώντας ένα ζεύγος κλειδιού-τιμής. Είναι ένα μικρό κομμάτι δεδομένων που αποστέλλεται από την εφαρμογή Ιστού και αποθηκεύεται στο πρόγραμμα περιήγησης Ιστού, ενώ ο χρήστης περιηγείται σε αυτόν τον ιστότοπο.

Κάντε κλικ εδώ για να μάθετε δοκιμή cookie.

Selenium Εντολές ερωτήματος για cookies

In Selenium Webdriver, μπορούμε να ρωτήσουμε και να αλληλεπιδράσουμε με τα cookies με την παρακάτω ενσωματωμένη μέθοδο:

Selenium Εντολές ερωτήματος Παραγωγή
driver.manage().getCookies(); Επιστρέψτε τη λίστα όλων των cookies
driver.manage().getCookieNamed(arg0); Επιστρέψτε συγκεκριμένο cookie σύμφωνα με το όνομα
driver.manage().addCookie(arg0); Δημιουργήστε και προσθέστε το cookie
driver.manage().deleteCookie(arg0); Διαγραφή συγκεκριμένου cookie
driver.manage().deleteCookieNamed(arg0); Διαγραφή συγκεκριμένου cookie σύμφωνα με το Όνομα
driver.manage().deleteAllCookies(); Διαγράψτε όλα τα cookies

Γιατί να χειρίζεστε (αποδέχεστε) τα cookies Selenium?

Κάθε cookie συσχετίζεται με ένα όνομα, τιμή, τομέα, διαδρομή, λήξη και την κατάσταση του εάν είναι ασφαλές ή όχι. Προκειμένου να επικυρωθεί ένας πελάτης, ένας διακομιστής αναλύει όλες αυτές τις τιμές σε ένα cookie.

Όταν Δοκιμές μια διαδικτυακή εφαρμογή που χρησιμοποιεί πρόγραμμα οδήγησης web selenium, ίσως χρειαστεί να δημιουργήσετε, να ενημερώσετε ή να διαγράψετε ένα cookie.

Για παράδειγμα, κατά την αυτοματοποίηση της Εφαρμογής Ηλεκτρονικών Αγορών, πολλοί χρειάζεται να αυτοματοποιήσετε σενάρια δοκιμών όπως παραγγελία παραγγελίας, Προβολή καλαθιού, Πληροφορίες πληρωμής, επιβεβαίωση παραγγελίας κ.λπ.

Εάν τα cookies δεν αποθηκεύονται, θα πρέπει να εκτελείτε ενέργεια σύνδεσης κάθε φορά πριν εκτελέσετε τα παραπάνω σενάρια δοκιμών. Αυτό θα αυξήσει την προσπάθεια κωδικοποίησης και τον χρόνο εκτέλεσης.

Η λύση είναι να αποθηκεύσετε τα cookies σε ένα Αρχείο. Later, ανακτήστε τις τιμές του cookie από αυτό το αρχείο και προσθέστε σε αυτό την τρέχουσα περίοδο λειτουργίας του προγράμματος περιήγησής σας. Ως αποτέλεσμα, μπορείτε να παραλείψετε τα βήματα σύνδεσης σε κάθε Δοκιμαστική θήκη επειδή η περίοδος λειτουργίας του προγράμματος οδήγησης περιέχει αυτές τις πληροφορίες.

Ο διακομιστής εφαρμογών αντιμετωπίζει πλέον την περίοδο λειτουργίας του προγράμματος περιήγησής σας ως πιστοποιημένη ταυτότητα και σας μεταφέρει απευθείας στη διεύθυνση URL που ζητήσατε.

Πώς να χειρίζεστε τα cookies Selenium

Θα το χρησιμοποιησουμε https://demo.guru99.com/test/cookie/selenium_aut.php για το σκοπό επίδειξης μας.

Αυτή θα είναι μια διαδικασία 2 βημάτων.

Βήμα 1) Συνδεθείτε στην εφαρμογή και αποθηκεύστε το cookie ελέγχου ταυτότητας που δημιουργήθηκε.

Χειριστείτε τα cookies Selenium

Βήμα 2) Χρησιμοποίησε το αποθηκευμένο cookie, για να συνδεθείτε ξανά στην εφαρμογή χωρίς να χρησιμοποιήσετε το userid και τον κωδικό πρόσβασης.

Βήμα 1) Αποθήκευση πληροφοριών cookie

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”)
  • Συνδεθείτε στην Εφαρμογή
  • Διαβάστε τις πληροφορίες cookie χρησιμοποιώντας
    driver.manage().getCookies();
  • Αποθηκεύστε τις πληροφορίες cookie χρησιμοποιώντας FileWriter Class για να γράψετε ροές χαρακτήρων και BufferedWriter για να γράψετε το κείμενο σε ένα αρχείο για να το δημιουργήσετε σε ένα αρχείο Cookies.data
  • Το αρχείο "Cookies.data" αποθηκεύει όλες τις πληροφορίες cookies μαζί με το "Όνομα, Τιμή, Τομέας, Διαδρομή". Μπορούμε να ανακτήσουμε αυτές τις πληροφορίες και να συνδεθούμε στην εφαρμογή χωρίς να εισάγουμε τα διαπιστευτήρια σύνδεσης.
  • Μόλις εκτελέσετε τον παραπάνω κώδικα, το αρχείο Cookie.data δημιουργείται στη δομή του φακέλου του έργου όπως φαίνεται στην παρακάτω οθόνη. Ανοίξτε το αρχείο Cookie.data, μπορείτε να δείτε ότι τα διαπιστευτήρια σύνδεσης του AUT είναι αποθηκευμένα στη μορφή του Cookie, δείτε την παρακάτω τονισμένη οθόνη

    Χειριστείτε τα cookies Selenium

Βήμα 2) Χρήση αποθηκευμένου cookie για να συνδεθείτε στην εφαρμογή

Τώρα, θα έχουμε πρόσβαση στο cookie που δημιουργήθηκε στο βήμα 1 και θα χρησιμοποιήσουμε το cookie που δημιουργήθηκε για να πιστοποιήσουμε την ταυτότητα της συνεδρίας μας στην εφαρμογή

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 Webdriver, και έτσι εξοικονομεί πολύ χρόνο.