쿠키를 처리하는 방법 Selenium 웹드라이버

HTTP 쿠키는 사용자 및 사용자의 기본 설정에 대한 정보로 구성됩니다. 키-값 쌍을 사용하여 정보를 저장합니다. 이는 사용자가 해당 웹사이트를 탐색하는 동안 웹 애플리케이션에서 전송되어 웹 브라우저에 저장되는 작은 데이터 조각입니다.

자세히 알아 보려면 여기를 클릭하십시오. 쿠키 테스트.

Selenium 쿠키에 대한 쿼리 명령

In Selenium Webdriver를 사용하면 아래 내장된 메서드를 사용하여 쿠키를 쿼리하고 상호 작용할 수 있습니다.

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) 사용자 ID와 비밀번호를 사용하지 않고 애플리케이션에 다시 로그인하기 위해 저장된 쿠키를 사용했습니다.

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는 텍스트를 파일에 기록하여 Cookies.data 파일을 생성합니다.
  • “Cookies.data” 파일은 “이름, 값, 도메인, 경로”와 함께 모든 쿠키 정보를 저장합니다. 로그인 자격 증명을 입력하지 않고도 이 정보를 검색하고 애플리케이션에 로그인할 수 있습니다.
  • 위의 코드를 실행하면 아래 화면과 같이 Cookie.data 파일이 프로젝트 폴더 구조에 생성됩니다. Cookie.data 파일을 열면 AUT의 로그인 자격 증명이 쿠키 형식으로 저장되어 있는 것을 볼 수 있습니다. 아래 강조 표시된 화면을 참조하세요.

    쿠키 처리 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");					
}	
	}	

출력: 사용자 ID와 비밀번호를 입력하지 않고 바로 로그인 성공 화면으로 이동합니다.

알림: 위 스크립트를 실행한 후 로그인 페이지가 나타나는 경우 강제 새로고침을 사용하세요.

맺음말

따라서 다음의 도움으로 각 테스트에 대해 반복해서 유효성을 검사하는 서버에 사용자 이름과 비밀번호를 입력하는 것을 피할 수 있습니다. Selenium Webdriver를 사용하면 많은 시간이 절약됩니다.

이 게시물을 요약하면 다음과 같습니다.