Java selenium對cookies的操作


public static void main(String[] args) {

    ChromeDriver driver = new ChromeDriver();
    
    driver.get("http://www.youdao.com/");
    
    //獲取cookies
    Set<Cookie> data = driver.manage().getCookies();
    System.out.println(data);
    //獲得cookies個數
    System.out.println(driver.manage().getCookies().size());
    
    //刪除所有cookies
    driver.manage().deleteAllCookies();
    //獲得cookies個數
    System.out.println(driver.manage().getCookies().size());//此時cookies的個數為0
    
    //設置cookies
    Cookie c1 = new Cookie("JSESSIONID", "A93C195B41FE5252CFB1AFFB381037F2");
    driver.manage().addCookie(c1);
    System.out.println(driver.manage().getCookies().size());//新增了一條,此時cookie個數為1

    driver.close();
    
}

 實例二 參考:

https://blog.csdn.net/wangh92/article/details/105995060
package debug;


import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.springframework.util.StringUtils;

import java.util.HashSet;
import java.util.Random;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;

public class test {
    public static ConcurrentHashMap<String, String> map = new ConcurrentHashMap<>();

    public static void main(String[] args) {
        System.err.println(getCookie("13100000000", "221.122.91.74:9401"));
    }

    public static String getCode(String mobile) {
        //平台獲取驗證碼接口
        return "349587";
    }

    @SuppressWarnings("deprecation")
    public static String getCookie(String mobile, String proxyIpAndPort) {
        //chromedriver必須和安裝的谷歌瀏覽器版本一致
         System.setProperty("webdriver.chrome.driver", "F:\\java\\workspace\\crawler\\chromedriver.exe");
        //System.setProperty("webdriver.chrome.driver", "/usr/bin/chromedriver");  //chromederiver存放位置
    //System.setProperty("webdriver.chrome.bin", "/opt/google/chrome/chrome");  //chrome安裝位置
        ChromeOptions chromeOptions = new ChromeOptions();
        if (StringUtils.isEmpty(proxyIpAndPort)) {
            chromeOptions.addArguments("--headless", "no-sandbox", "--disable-gpu", "--start-maximized");
        } else {
            chromeOptions.addArguments("--headless", "no-sandbox", "--disable-gpu", "--start-maximized", "--proxy-server=" + proxyIpAndPort);
        }
        WebDriver driver = new ChromeDriver(chromeOptions);
        String getCookie = null;
        //請求部分
        try {
            
            
            driver.get("http://ehall.tjut.edu.cn/publicapp/sys/zxzxapp/index.do#/consultingList");
            driver.findElement(By.id("username")).sendKeys("信息門戶賬號");        //登陸界面填寫手機號
            Thread.sleep(new Random().nextInt(100) + 200);
            driver.findElement(By.id("password")).sendKeys("我的密碼");        //登陸界面填寫手機號
            Thread.sleep(new Random().nextInt(100) + 200);
            driver.findElement(By.className("submitBtn")).click();        //點擊手機登陸按鈕
            Document document = Jsoup.parse(driver.getPageSource());
//            driver.findElement(By.className("bh-headerBar-roleBox-title")).click();    //獲取到登陸按鈕
//            driver.findElement(By.id("20180807000451660")).click();    //獲取到登陸按鈕

            System.out.println(document);
            
            
//            driver.get("http://m.yangkeduo.com/login.html");
//            driver.findElement(By.className("phone-login")).click();        //點擊手機登陸按鈕
//            Thread.sleep(new Random().nextInt(100) + 200);
//            driver.findElement(By.id("user-mobile")).sendKeys(mobile);        //登陸界面填寫手機號
//            Thread.sleep(new Random().nextInt(100) + 200);
//            driver.findElement(By.id("code-button")).click();                //點擊發送驗證碼按鈕
//            Thread.sleep(new Random().nextInt(50) + 99);
//            driver.findElement(By.id("input-code")).sendKeys(getCode(mobile));     //將驗證碼填入
//            Thread.sleep(new Random().nextInt(100) + 200);
//            WebElement element = driver.findElement(By.id("submit-button"));    //獲取到登陸按鈕    
//            element.sendKeys(Keys.ENTER);                                        //對登陸按鈕敲擊回車
            Thread.sleep(new Random().nextInt(100) + 900);
            Set<Cookie> cookies = driver.manage().getCookies();                    //獲取cookies
            Set<String> set = new HashSet<>();
          //處理cookies[_nano_fp=XpEol09xX5gYlpPbXC_bZb339IF0A6JcsUSlYehG; expires=星期五, 01 五月 2048 04:49:09 CST; path=/; domain=m.yangkeduo.com, api_uid=CklG8V/YeIQjNwBYOHB7Ag==; expires=星期五, 01 一月 2038 07:55:55 CST; path=/; domain=.yangkeduo.com, pdd_vds=gaALjIVLHOMPqNpiXbzmKbpaVmgPWoWPXNqLpEJoJGjIqypyqQpbjOqQFLgI; expires=星期二, 22 十二月 2020 04:49:08 CST; path=/; domain=m.yangkeduo.com, webp=1; path=/; domain=m.yangkeduo.com] api_uid=CklG8V/YeIQjNwBYOHB7Ag==

            System.out.println(cookies);                                                                    
//            for (Cookie cookie : cookies) {
//                String[] regex = cookie.toString().split(";");
//                for (String key : regex) {
//                    String[] split = key.split("=");
//                    if (split[0].equalsIgnoreCase("PDDAccessToken") || split[0].equalsIgnoreCase("api_uid")) {
//                        set.add(key);
//                    }
//                }
//            }
//            getCookie = String.join(";", set);
//            map.put(mobile, getCookie);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
//            driver.close();
        }
        return getCookie;
    }

}

//參考鏈接:https://blog.csdn.net/wangh92/article/details/105995060

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM