HTTP 쿠키는 사용자 사용자의 기본 설정에 대한 정보로 구성됩니다 - 쌍을 사용하여 정보를 저장합니다사용자가 해당 사이트를 탐색하는 동안 응용 프로그램에서 전송되고 브라우저에 저장된 작은 데이터입니다.

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

(https://www.guru99.com/cookie-testing-tutorial-with-sample-test-cases.html)

튜토리얼에서는, 우리는 -

쿠키에 대한 Selenium Query Commands

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

driver.manage (). getCookies (); // 모든 쿠키 목록을 반환합니다.

driver.manage (). getCookieNamed (arg0); // 이름에 따라 특정 쿠키 반환

driver.manage (). addCookie (arg0); // 쿠키를 만들고 추가합니다.

driver.manage (). deleteCookie (arg0); // 특정 쿠키 삭제

driver.manage (). deleteCookieNamed (arg0); // 이름에 따라 특정 쿠키 삭제

driver.manage (). deleteAllCookies (); // 모든 쿠키 삭제

Selenium에서 쿠키를 처리하는 이유는 무엇입니까?

쿠키는 이름, , 도메인, 경로, 만료 보안 상태 여부와 관련됩니다클라이언트의 유효성을 검사하기 위해 서버는 쿠키의 모든 값을 구문 분석합니다.

셀레늄 드라이버를 사용하여 응용 프로그램을 테스트   쿠키를 작성, 업데이트 또는 삭제해야 있습니다.

예를 들어, 온라인 쇼핑 응용 프로그램을 자동화 장소 주문, 장바구니보기, 지불 정보, 주문 확인 등과 같은 테스트 시나리오를 자동화해야 합니다.

쿠키가 저장되어 있지 않으면 위에 나열된 테스트 시나리오를 실행하기 전에 매번 로그인 작업을 수행해야합니다이렇게 하면 코딩 작업과 실행 시간이 늘어납니다.

해결책은 파일에 쿠키를 저장하는 것입니다나중에 파일에서 쿠키 값을 검색하여 현재 브라우저 세션을 추가하십시오결과적으로 드라이버 세션에 정보가 있으므로 모든 테스트 케이스 에서 로그인 단계를 건너 있습니다 .

이제 응용 프로그램 서버는 브라우저 세션을 인증 것으로 취급하고 요청 URL 직접 이동합니다.

데모 : Selenium 쿠키 처리.

우리는 데모 목적으로 http://demo.avactis.com  사용할 것입니다.

이것은 2 단계 과정이 것입니다.

1) 응용 프로그램에 로그인하여 생성 인증 쿠키를 저장합니다.

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("http://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 ( "http://demo.guru99.com/test/cookie/selenium_aut.php") 사용하여 사이트를 방문합니다.
  • 응용 프로그램에 로그인하십시오.
  • 다음을 사용하여 쿠키 정보 읽기

driver.manage (). getCookies ();                                                                                             

  • 문자의 스트림을 쓰려면 FileWriter 클래스를 사용하고 쿠키 파일을 만들려면 파일에 텍스트를 쓰는 BufferedWriter 사용하여 쿠키 정보를 저장하십시오. Cookies.data
  • "Cookies.data"파일은 모든 쿠키 정보를 "이름, , 도메인, 경로" 함께 저장합니다 정보를 검색하고 로그인 자격 증명을 입력하지 않고 애플리케이션에 로그인 있습니다.
  • 코드를 실행하면 아래 화면과 같이 Cookie.data 파일이 프로젝트 폴더 구조에 만들어집니다. Cookie.data 파일을 엽니 . AUT 로그인 자격 증명이 쿠키 형식으로 저장됨을 있습니다. 아래에서 강조 표시된 화면을 참조하십시오.

Cookie Handling in Selenium WebDriver

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("http://demo.guru99.com/test/cookie/selenium_aut.php");                                                               

}             

               }             

OUTPUT : 입력 사용자 ID 암호를 입력하지 않고 로그인 성공 화면으로 직접 이동합니다.

참고 : 위의 스크립트를 실행 로그인 페이지가 표시되는 경우 하드 새로 고침을 사용하십시오.

결론

따라서 Selenium Webdriver 사용하여 서버마다 사용자 이름과 비밀번호를 반복해서 검증하는 일이 없으므로 많은 시간을 절약 있습니다

 


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Posted by 프리스케이터