package test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File; import java.io.FileReader;
import java.io.FileWriter;
import java.util.Date; import java.util.StringTokenizer; import org.openqa.selenium.By;
import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
import common.StartChrome; public class TestCookies { public static void main(String[] args) { TestCookies.getCookies();
TestCookies.addCookies(); }
public static void addCookies(){
BufferedReader bufferedReader;
// WebDriver driver = StartFireFox.start();
WebDriver driver=StartChrome.start();
driver.get("http://www.zhihu.com/"); try {
File cookieFile = new File("zhizhu.txt");
FileReader fr=new FileReader(cookieFile);
bufferedReader= new BufferedReader(fr);
String line;
while((line = bufferedReader.readLine())!=null){ StringTokenizer stringTokenizer=new StringTokenizer(line,";"); while(stringTokenizer.hasMoreTokens()){ String name = stringTokenizer.nextToken(); String value= stringTokenizer.nextToken(); String domain = stringTokenizer.nextToken(); String path = stringTokenizer.nextToken();
Date expiry = null; String dt; if(! (dt = stringTokenizer.nextToken()).equals("null")){ expiry = new Date(dt); } boolean isSecure = new Boolean(stringTokenizer.nextToken()).booleanValue(); Cookie cookie = new Cookie(name,
value,
domain,
path,
expiry,
isSecure); driver.manage().addCookie(cookie); }
} } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(); driver.get("http://www.zhihu.com");
} public static void getCookies(){ //WebDriver driver = StartFireFox.start();
WebDriver driver=StartChrome.start();
driver.get("https://www.zhihu.com/#signin");
//填写用户信息,然后登陆 driver.findElement(By.name("account")).sendKeys("XXXX");
driver.findElement(By.name("password")).sendKeys("XXXX");
if(driver.findElement(By.name("remember_me")).isSelected()){
driver.findElement(By.name("remember_me")).click(); }
driver.findElement(By.className("sign-button")).click(); try{
Thread.sleep(3000);
File cookieFile = new File("zhizhu.txt");
cookieFile.delete();
cookieFile.createNewFile();
FileWriter fileWriter = new FileWriter(cookieFile);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
for (Cookie cookie : driver.manage().getCookies()){ bufferedWriter.write((cookie.getName() + ";"
+cookie.getValue()+";"
+ cookie.getDomain() + ";"
+ cookie.getPath() + ";"
+ cookie.getExpiry() + ";"
+ cookie.isSecure())); bufferedWriter.newLine(); }
bufferedWriter.flush();
bufferedWriter.close();
fileWriter.close(); }catch (Exception ex){ ex.printStackTrace(); }
System.out.println("close brower");
driver.quit();
} }   

  重点保存cookies到一个文件,然后每次读取文件

selenium操作浏览器cookies的更多相关文章

  1. [Selenium] 操作浏览器 Cookies

    WebDriver 提供了一系列 Cookies 的操作来获取.填写.删除 Cookies 的方法,节省了多次在登陆页面的查找元素并填写登录信息的时间. 1)获取 Cookies ,并保存到文件中以备 ...

  2. [Python爬虫]使用Selenium操作浏览器订购火车票

    这个专题主要说的是Python在爬虫方面的应用,包括爬取和处理部分 [Python爬虫]使用Python爬取动态网页-腾讯动漫(Selenium) [Python爬虫]使用Python爬取静态网页-斗 ...

  3. 每次用 selenium 操作浏览器都还原了 (比如没有浏览器历史记录)

    每次用 selenium 操作浏览器都还原了 (比如没有浏览器历史记录)

  4. selenium操作浏览器cookie方法

    /**     * 操作浏览器的cookie     */        @Test    public void testCookie()throws Exception{        drive ...

  5. selenium操作浏览器的前进和后退

    前进关键字:driver.forward() 后退关键字:driver.back() 测试对象:1.https://www.baidu.com/ 2.https://www.sogou.com/ 实例 ...

  6. 『心善渊』Selenium3.0基础 — 3、使用Selenium操作浏览器对象的基础API

    目录 1.导入Selenium库 2.创建浏览器对象 3.浏览器窗口大小设置 4.浏览器位置设置 5.请求访问网址 6.浏览器页面前进.后退和刷新 7.关闭浏览器 相比于高大上的各种Selenium进 ...

  7. 『心善渊』Selenium3.0基础 — 17、Selenium操作浏览器窗口的滚动条

    目录 1.为什么操作滚动条 2.Selenium如何操作滚动条 3.Selenium操作滚动条方法 4.操作滚动条示例 5.下拉至聚焦元素的位置 (1)实现步骤: (2)实现示例: 1.为什么操作滚动 ...

  8. 『心善渊』Selenium3.0基础 — 18、使用Selenium操作浏览器的弹窗

    目录 1.操作浏览器自带弹窗 2.操作浏览器页面自定义弹窗 1.操作浏览器自带弹窗 (1)说明: webdriver中处理JavaScript所生成的alert.confirm 以及prompt 弹窗 ...

  9. Selenium+java操作浏览器cookies

    描述:登录CSDN,将登录信息cookies保存到文件,再次打开网页时,直接利用文件中的数据登录. 1. 获取cookies并保存到文件 步骤: ① 打开CSDN的登录界面: ② 填写用户名和密码: ...

随机推荐

  1. fs.inotify.max_user_watches默认值太小,导致too many open files

    运行环境:centos7.5 linux 打开文件数 too many open files 解决方法fs.inotify.max_user_watches默认值太小,导致too many open ...

  2. sass创建web项目环境步骤

    1)npm创建web前端项目环境步骤 1.新建文件夹,在该文件下进入cmd控制台2.输入命令 npm init 回车3.name:名字只支持小写,不支持大写,将大写的名字改为小写即可4.version ...

  3. 原子动作检测 A Better Baseline for AVA

    本文将Faster-RCNN用在了I3D的feature map上,用于视频中多人多动作的检测 challege比赛第二名的整体方法是将Faster-RCNN作用在I3Dfeature上.训练时,以标 ...

  4. python开发环境搭建及numpy基本属性-【老鱼学numpy】

    目的 本节我们将介绍如何搭建python的开发环境以及numpy的基本属性,这样可以检验我们的numpy是否安装正确了. python开发环境的搭建 工欲善其事必先利其器,我用得比较顺手的是Intel ...

  5. UOJ#347. 【WC2018】通道 边分治 虚树

    原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ347.html 题意 有三棵树,边有边权. 对于所有点对 (x,y) 求在三棵树上 x 到 y 的距离之和 ...

  6. 重新学习Java的开始~

    安装jdk的步骤及解释已经在这篇文章中详细阐述了,如下: http://www.cnblogs.com/godtrue/p/4338323.html 1.如何安装库源文件--摘自coreJava 库源 ...

  7. 用Java实现AES加密

    参考内容来自:http://blog.csdn.net/hbcui1984/article/details/5201247 一)什么是AES? 高级加密标准(英语:Advanced Encryptio ...

  8. django——CRM项目

    1.引言 CRM,客户关系管理系统(Customer Relationship Management).企业用CRM技术来管理与客户之间的关系,以求提升企业成功的管理方式,其目的是协助企业管理销售循环 ...

  9. 找出数组[1...n]中第k小元素

    //问题描述: 试编写一个算法,使之能够在数组L[1...n]中找出第k小的元素(即从小到大排序后处于第k个位置的元素) #include <stdio.h> // 结合快排思想,查找第5 ...

  10. python学习:缩进

    缩进 一要求: 官方建议打四个空格.tab键不建议使用,放到其他操作系统容易出现混乱.(打四个空格太费劲) 二实现: 简便方法:每按一下tab键自动换成四个空格.notepad++ 设置里首选项-制表 ...